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 0990045..3050cea 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 @@ -244,7 +244,7 @@ public class PsCustomController extends BaseController { @RepeatSubmit @Log(title = "指派") @GetMapping("/assign") - public R assign(@NotNull Long customerId,@NotNull Long userId) { + public R assign(@NotNull Long customerId, @NotNull Long userId) { psCustomInfoService.assign(customerId,userId); return R.ok(); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsHomeController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsHomeController.java deleted file mode 100644 index 41a23b2..0000000 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsHomeController.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.pusong.business.controller; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.dev33.satoken.annotation.SaIgnore; -import com.pusong.business.domain.bo.PsCustomCallbackBo; -import com.pusong.business.domain.bo.PsCustomInfoBo; -import com.pusong.business.domain.bo.PsCustomPriceBo; -import com.pusong.business.domain.vo.PsCustomInfoVo; -import com.pusong.business.domain.vo.PsCustomerRecordVo; -import com.pusong.business.service.IPsCustomInfoService; -import com.pusong.common.core.domain.R; -import com.pusong.common.core.validate.AddGroup; -import com.pusong.common.core.validate.EditGroup; -import com.pusong.common.idempotent.annotation.RepeatSubmit; -import com.pusong.common.log.annotation.Log; -import com.pusong.common.log.enums.BusinessType; -import com.pusong.common.mybatis.core.page.PageQuery; -import com.pusong.common.mybatis.core.page.TableDataInfo; -import com.pusong.common.web.core.BaseController; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 客户基本信息 - * - * @author Lion Li - * @date 2024-07-25 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/business/home") -public class PsHomeController extends BaseController { - - private final IPsCustomInfoService psCustomInfoService; -// /** -// * 查询登陆人下所有的客户名称和id -// */ -// @RepeatSubmit() -// @SaCheckPermission("business:customInfo:list") -// @GetMapping("/listByLoginUser") -// public R> listByLoginUser() { -// return R.ok(psCustomInfoService.listByLoginUser()); -// } - - - @RepeatSubmit() - @SaCheckPermission("business:statistics") - @GetMapping("/statistics") - public R> statistics() { - return R.ok(); - } - -} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsTaskQueryBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsTaskQueryBo.java index 2c4791f..8de7716 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsTaskQueryBo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsTaskQueryBo.java @@ -28,6 +28,11 @@ public class PsTaskQueryBo { */ private String companyName; + /** + * 服务公司名称 + */ + private String serviceCompanyName; + /** * 纳税人识别号 */ diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskWorkRecordVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskWorkRecordVo.java index 8e66db2..d727312 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskWorkRecordVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsTaskWorkRecordVo.java @@ -94,4 +94,9 @@ public class PsTaskWorkRecordVo implements Serializable { */ @Translation(type = TransConstant.USER_ID_TO_NICKNAME,mapper = "executor") private String executorName; + + /** + * 创建者 + */ + private String createBy; } 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 7a6e52b..7e5e68e 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 @@ -20,6 +20,7 @@ import com.pusong.common.mybatis.enums.DataScopeType; import org.apache.ibatis.annotations.Param; import java.time.LocalDate; +import java.time.temporal.Temporal; import java.util.List; import java.util.Map; @@ -58,12 +59,12 @@ public interface PsContractInfoMapper extends BaseMapperPlus byChannel(@Param(Constants.WRAPPER) Wrapper queryWrapper); + List byChannel(@Param(Constants.WRAPPER) Wrapper queryWrapper, Temporal startTime, Temporal endTime); //首页查询各个渠道成交的合同 @DataPermission({ @DataColumn(key = "userName", value = "info.custom_manager") }) - List byChannelUser(@Param(Constants.WRAPPER) Wrapper queryWrapper); + List byChannelUser(@Param(Constants.WRAPPER) Wrapper queryWrapper, Temporal startTime, Temporal endTime); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskWorkRecordMapper.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskWorkRecordMapper.java index 4483aad..eaed077 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskWorkRecordMapper.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsTaskWorkRecordMapper.java @@ -1,8 +1,15 @@ package com.pusong.business.mapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.pusong.business.domain.PsContractInfo; import com.pusong.business.domain.PsTaskWorkRecord; +import com.pusong.business.domain.vo.PsContractBusinessVo; import com.pusong.business.domain.vo.PsTaskWorkRecordVo; import com.pusong.common.mybatis.core.mapper.BaseMapperPlus; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 外勤任务记录Mapper接口 @@ -11,5 +18,6 @@ import com.pusong.common.mybatis.core.mapper.BaseMapperPlus; * @date 2024-08-09 */ public interface PsTaskWorkRecordMapper extends BaseMapperPlus { + List selectListAndUser(@Param(Constants.WRAPPER) Wrapper queryWrapper); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PayContractApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PayContractApproverServiceImpl.java index 1949c51..df6adbe 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PayContractApproverServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PayContractApproverServiceImpl.java @@ -116,7 +116,7 @@ public class PayContractApproverServiceImpl extends ApproverAbstractServiceImpl if (ContractStatusEnum.CREATE.getCode().equals(info.getContractStatus())){ noticeService.sendNotice(SysNoticeBo.getFirstPayErrorInstance(info.getCustomManager(), info.getPsCustomInfoVo().getCustomName(), psApproverRecord.getApproverDesc())); }else{ - if (info.getResidualMoney().doubleValue() > 0){ + if (info.getResidualMoney().subtract(update.getMoney()).doubleValue() > 0){ noticeService.sendNotice(SysNoticeBo.getPayErrorInstance(info.getCustomManager(), info.getPsCustomInfoVo().getCustomName(), psApproverRecord.getApproverDesc())); }else{ noticeService.sendNotice(SysNoticeBo.getLastPayErrorInstance(info.getCustomManager(), info.getPsCustomInfoVo().getCustomName(), psApproverRecord.getApproverDesc())); 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 5dcbc26..32f4ce1 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 @@ -63,7 +63,7 @@ public class PublicApproverServiceImpl extends ApproverAbstractServiceImpl { info.setCustomManager(Long.valueOf(psApproverRecord.getUpdateData())); info.setAcceptDate(new Date()); customInfoMapper.updateById(info); - noticeService.sendNotice(SysNoticeBo.getGonghaiShenpiInstance(info.getCustomManager())); + noticeService.sendNotice(SysNoticeBo.getGonghaiShenpiInstance(info.getCustomManager(), info.getCustomName())); } /** @@ -76,7 +76,7 @@ public class PublicApproverServiceImpl extends ApproverAbstractServiceImpl { info.setCustomStatus(CustomerStatusEnum.PUBLIC.getCode()); info.setCustomManager(Long.valueOf(psApproverRecord.getUpdateData())); customInfoMapper.updateById(info); - noticeService.sendNotice(SysNoticeBo.getGonghaiZhipaiErrorInstance(info.getCustomManager(), psApproverRecord.getApproverDesc())); + noticeService.sendNotice(SysNoticeBo.getGonghaiZhipaiErrorInstance(info.getCustomManager(), info.getCustomName(), psApproverRecord.getApproverDesc())); } /** diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java index f37b354..7ac53d8 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java @@ -57,7 +57,7 @@ public class UpdateContractApproverServiceImpl extends ApproverAbstractServiceIm contractInfoService.update(src, bo); - noticeService.sendNotice(SysNoticeBo.getUpdateContractInstance(src.getCustomManager(), psApproverRecord.getApproverDesc())); + noticeService.sendNotice(SysNoticeBo.getUpdateContractInstance(src.getCustomManager(), src.getPsCustomInfoVo().getCustomName())); //3.修改后操作 // afterUpdateOperate(bo, src); 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 0a1f8ae..dc8f86d 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 @@ -29,7 +29,10 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.chrono.ChronoLocalDateTime; import java.time.format.DateTimeFormatter; +import java.time.temporal.Temporal; import java.time.temporal.TemporalAdjusters; import java.util.*; import java.util.stream.Collectors; @@ -84,23 +87,25 @@ public class HomeServiceImpl implements HomeService { //续期合同 makeAmountVo.getRenewInfo().setNum(renewList.size()+"单"); makeAmountVo.getRenewInfo().setMoney(renewList.stream().map(PsContractInfo::getContractAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)); - fillPay(renewList,makeAmountVo.getRenewInfo()); + fillPay(renewList, makeAmountVo.getRenewInfo(), startDate, endDate); //新签合同 makeAmountVo.getNewInfo().setNum(newList.size()+"单"); makeAmountVo.getNewInfo().setMoney(newList.stream().map(PsContractInfo::getContractAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)); - fillPay(newList,makeAmountVo.getNewInfo()); + fillPay(newList, makeAmountVo.getNewInfo(), startDate, endDate); //计算比例 makeAmountVo.cellPer(); return makeAmountVo; } - private void fillPay(List list, DataAmountVo typeAmountVo){ + private void fillPay(List list, DataAmountVo typeAmountVo, Temporal startDate, Temporal endDate){ //续费/新签的合同编码集合 List renewCodes = list.stream().map(PsContractInfo::getContractCode).toList(); //续费/新签的合同已付金额 if(CollectionUtils.isNotEmpty(renewCodes)){ List payList = payMapper.selectList(Wrappers.query().select("business_type", "sum(money) money").lambda() .in(PsContractPay::getContractCode, renewCodes).eq(PsContractPay::getPayStatus, PayStatusEnum.SUCCESS.getCode()) + .ge(startDate != null, PsContractPay::getCreateTime, startDate) + .le(endDate != null, PsContractPay::getCreateTime, endDate) .groupBy(PsContractPay::getBusinessType)); BigDecimal payMoney = BigDecimal.ZERO; for (PsContractPay pay : payList) { @@ -163,28 +168,28 @@ public class HomeServiceImpl implements HomeService { String date = (String)mapParam.get("date"); //当月合同款总数 - BigDecimal sumMoney= new BigDecimal(0); + BigDecimal sumMoney = new BigDecimal(0); //回款合同数 Integer payNum = 0; //当月已支付合同金额 - BigDecimal payMoney=new BigDecimal(0); + BigDecimal payMoney = new BigDecimal(0); //当月合同总数 - Integer contractNum=0; + Integer contractNum = 0; Map queryParam=new HashMap<>(); - queryParam.put("startDate",startDate); - queryParam.put("endDate",endDate); - queryParam.put("payStatus",PayStatusEnum.SUCCESS.getCode()); - queryParam.put("contractStatus",ContractStatusEnum.INIT.getCode()); - queryParam.put("isCancel",CommonStatusEnum.SUCCESS.getCode()); + queryParam.put("startDate", startDate); + queryParam.put("endDate", endDate); + queryParam.put("payStatus", PayStatusEnum.SUCCESS.getCode()); + queryParam.put("contractStatus", ContractStatusEnum.INIT.getCode()); + queryParam.put("isCancel", CommonStatusEnum.SUCCESS.getCode()); List> list = psContractInfoMapper.homePageReturnMoneyInfo(queryParam); //记录合同编码,防止重复 Map repeatNum=new HashMap<>(); for(Map m : list){ //计算已回款金额 - BigDecimal money =m.get("money")==null?new BigDecimal(0):(BigDecimal) m.get("money"); - String businessType=m.get("business_type")==null?"":m.get("business_type").toString(); + BigDecimal money = m.get("money") == null ? new BigDecimal(0) : (BigDecimal) m.get("money"); + String businessType = m.get("business_type") == null ? "" : m.get("business_type").toString(); //判断是回款还是退款 if(businessType.equals("1")){ payMoney = payMoney.add(money); @@ -193,14 +198,13 @@ public class HomeServiceImpl implements HomeService { } - String contractCode=m.get("contract_code").toString(); - if(repeatNum.get(contractCode)==null){ + String contractCode = m.get("contract_code").toString(); + if(repeatNum.get(contractCode) == null){ repeatNum.put(contractCode,1); sumMoney = sumMoney.add((BigDecimal) m.get("contract_amount")); contractNum++; if(businessType.equals("1")){ - payMoney = payMoney.add(money); payNum++; } } @@ -303,8 +307,8 @@ public class HomeServiceImpl implements HomeService { queryParam.put("payStatus", PayStatusEnum.SUCCESS.getCode()); QueryWrapper queryWrapper = new QueryWrapper() - .in(isCaiwu, "role.role_key", Arrays.asList(RoleEnum.caiwu)) - .in(!isCaiwu, "role.role_key", Arrays.asList(RoleEnum.xiaoshou)); + .in(isCaiwu, "role.role_key", Arrays.asList(RoleEnum.caiwu, RoleEnum.cwzg)) + .in(!isCaiwu, "role.role_key", Arrays.asList(RoleEnum.xiaoshou, RoleEnum.xszg)); List list = psContractInfoMapper.getUserContractSourceAmountsByDeptId(queryParam, queryWrapper); Map res = new HashMap<>(); @@ -396,8 +400,8 @@ public class HomeServiceImpl implements HomeService { LocalDate startDate = (LocalDate)mapParam.get("startDate"); LocalDate endDate = (LocalDate)mapParam.get("endDate"); String date = (String)mapParam.get("date"); - - Map queryParam=new HashMap<>(); + LocalDateTime localDateTime2= LocalDateTime.parse("2024-11-07T14:04:00"); + Map queryParam = new HashMap<>(); queryParam.put("startDate", startDate); queryParam.put("endDate", endDate); queryParam.put("contractStatus", ContractStatusEnum.INIT.getCode()); @@ -488,12 +492,13 @@ public class HomeServiceImpl implements HomeService { queryParam.put("contractStatus", ContractStatusEnum.INIT.getCode()); queryParam.put("isCancel", CommonStatusEnum.SUCCESS.getCode()); queryParam.put("payStatus", PayStatusEnum.SUCCESS.getCode()); - + LocalDateTime localDateTime2= LocalDateTime.parse("2024-11-07T14:04:00"); QueryWrapper queryWrapper = new QueryWrapper() - .in(isCaiwu, "role.role_key", Arrays.asList(RoleEnum.caiwu)) - .in(!isCaiwu, "role.role_key", Arrays.asList(RoleEnum.xiaoshou)); +// .in(isCaiwu, "role.role_key", Arrays.asList(RoleEnum.caiwu, RoleEnum.cwzg)) +// .in(!isCaiwu, "role.role_key", Arrays.asList(RoleEnum.xiaoshou, RoleEnum.xszg) ); + ; List list = psContractInfoMapper.getUserContractAndPayInfo(queryParam, queryWrapper); - Map resMap = new HashMap<>(); + Map resMap = new HashMap<>(); //记录合同编码,防止重复 Map repeatContractCode = new HashMap<>(); for (UserContractAmountInfo obj : list) { @@ -514,7 +519,7 @@ public class HomeServiceImpl implements HomeService { if(repeatContractCode.get(obj.getContractCode())==null){ - repeatContractCode.put(obj.getContractCode(),obj.getContractCode()); + repeatContractCode.put(obj.getContractCode(), obj.getContractCode()); vo.addSumAmount(obj.getContractAmount()); } @@ -547,7 +552,7 @@ public class HomeServiceImpl implements HomeService { List listData = resMap.values().stream().sorted( Comparator.comparing(UserAmountInfoVo::getSumAmount,Comparator.reverseOrder())).collect(Collectors.toList()); - BigDecimal sumAmount = list.stream().map(UserContractAmountInfo::getContractAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal sumAmount = resMap.values().stream().map(UserAmountInfoVo::getSumAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); //计算金额占比 for (UserAmountInfoVo v : listData) { if(!v.getSumAmount().equals(BigDecimal.ZERO)) { @@ -576,6 +581,11 @@ public class HomeServiceImpl implements HomeService { Map mapParam = dateType == 1 ? this.getDate(type) : this.getDateByUser(type); LocalDate startDate = (LocalDate)mapParam.get("startDate"); LocalDate endDate = (LocalDate)mapParam.get("endDate"); + + // LocalDateTime localDateTime1= LocalDateTime.parse("2024-11-07T00:00:30"); +// LocalDateTime localDateTime2= LocalDateTime.parse("2024-11-07T14:04:00"); + + String date = (String)mapParam.get("date"); //返回dto ChannelAmountVo res = new ChannelAmountVo(); @@ -583,13 +593,13 @@ public class HomeServiceImpl implements HomeService { log.info("查询日期:{}到{}",startDate,endDate); 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()) +// .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); + list = psContractInfoMapper.byChannel(wq, startDate, endDate); }else{//用户个人的数据权限 - list = psContractInfoMapper.byChannelUser(wq); + list = psContractInfoMapper.byChannelUser(wq, startDate, endDate); } //查询各个渠道的字典表 @@ -610,9 +620,13 @@ public class HomeServiceImpl implements HomeService { BigDecimal money = BigDecimal.ZERO; BigDecimal paymoney = BigDecimal.ZERO; for (ChannelPayInfo pay : payList){ - contractCodes.add(pay.getContractCode()); - money = money.add(pay.getContractAmount()); - paymoney = pay.getBusinessType().equals("1")? paymoney.add(pay.getMoney()) : paymoney.subtract(pay.getMoney()); + if (!contractCodes.contains(pay.getContractCode())){ + contractCodes.add(pay.getContractCode()); + money = money.add(pay.getContractAmount()); + } + if (pay.getBusinessType() != null){ + paymoney = pay.getBusinessType().equals("1") ? paymoney.add(pay.getMoney()) : paymoney.subtract(pay.getMoney()); + } } BigDecimal unpaymoney = money.subtract(paymoney); data.setNum(contractCodes.size()+"单"); @@ -713,10 +727,12 @@ public class HomeServiceImpl implements HomeService { Map mapParam = this.getDateByUser(type); LocalDate startDate = (LocalDate)mapParam.get("startDate"); LocalDate endDate = (LocalDate)mapParam.get("endDate"); + String date = (String)mapParam.get("date"); Map queryParam = new HashMap<>(); queryParam.put("startDate",startDate); queryParam.put("endDate",endDate); + SalasVo salasVo = psHomeMapper.selectContractNumAndAmount(queryParam); salasVo.setGonghaiNum(psHomeMapper.selectGonghaiNum(queryParam)); salasVo.setCallbackRecordNum(psHomeMapper.selectCallbackRecordNum(queryParam)); 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 39c407c..463b8b7 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 @@ -582,13 +582,13 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService { * @param customerId 客户id * @param userId 被指派者 */ - public void assign(Long customerId,Long userId){ + public void assign(Long customerId, Long userId){ PsCustomInfo psCustomInfo = baseMapper.selectById(customerId); psCustomInfo.setCustomStatus(CustomerStatusEnum.INIT.getCode()); psCustomInfo.setCustomManager(userId); psCustomInfo.setAcceptDate(new Date()); baseMapper.updateById(psCustomInfo); - noticeService.sendNotice(SysNoticeBo.getGonghaiZhipaiInstance(customerId)); + noticeService.sendNotice(SysNoticeBo.getGonghaiZhipaiInstance(userId, psCustomInfo.getCustomName())); } } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java index 469e77a..9ebbd14 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java @@ -76,7 +76,7 @@ public class PsTaskServiceImpl implements IPsTaskService { @Autowired @Lazy private final IPsContractInfoService contractInfoService; - + @Autowired private SysUserMapper sysUserMapper; /** @@ -105,6 +105,8 @@ public class PsTaskServiceImpl implements IPsTaskService { * @return 主任务分页列表 */ public TableDataInfo queryPageList(PsTaskQueryBo bo, PageQuery pageQuery){ + bo.setServiceCompanyName(bo.getCompanyName()); + bo.setCompanyName(null); QueryWrapper lqw = buildQueryWrapper(bo); Page page; if(StringUtils.equals(TaskTypeEnum.INVOICE.getCode(), bo.getType())){//发票任务无需数据权限 @@ -611,6 +613,8 @@ public class PsTaskServiceImpl implements IPsTaskService { lqw.like(StringUtils.isNotBlank(bo.getContractCode()), "main.contract_code", bo.getContractCode()); lqw.like(StringUtils.isNotBlank(bo.getCompanyName()), "com.company_name", bo.getCompanyName());//公司名称 + lqw.like(StringUtils.isNotBlank(bo.getServiceCompanyName()), "scom.company_name", bo.getServiceCompanyName());//公司名称 + lqw.like(StringUtils.isNotBlank(bo.getCustomerNum()), "com.customer_num", bo.getCustomerNum());//纳税人识别号 lqw.eq(StringUtils.isNotBlank(bo.getCustomerCert()), "com.customer_cert", bo.getCustomerCert());//纳税人资格 lqw.like(StringUtils.isNotBlank(bo.getCustomManagerName()), "usr.nick_name", bo.getCustomManagerName());//销售经理姓名 @@ -618,8 +622,8 @@ public class PsTaskServiceImpl implements IPsTaskService { lqw.like(StringUtils.isNotBlank(bo.getMobile()), "com.legal_person_phone", bo.getMobile());//法人手机号 lqw.like(StringUtils.isNotBlank(bo.getIdNo()), "com.legal_person_idcard", bo.getIdNo());//法人身份证 lqw.like(StringUtils.isNotBlank(bo.getName()), "com.legal_person_name", bo.getName());//法人姓名 - lqw.like(StringUtils.isNotBlank(bo.getCustomName()), "com.contact_person_name", bo.getCustomName());//客户姓名 - lqw.like(StringUtils.isNotBlank(bo.getCustomMobile()), "com.contact_person_phone", bo.getCustomMobile());//客户电话 + lqw.like(StringUtils.isNotBlank(bo.getCustomName()), "scom.contact_person_name", bo.getCustomName());//客户姓名 + lqw.like(StringUtils.isNotBlank(bo.getCustomMobile()), "scom.contact_person_phone", bo.getCustomMobile());//客户电话 lqw.eq(StringUtils.isNotBlank(bo.getCustomScene()), "con.custom_scene", bo.getCustomScene());//是否到达现场 lqw.eq(StringUtils.isNotBlank(bo.getIsProxy()), "bus.is_proxy", bo.getIsProxy());//是否代账 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskWorkRecordServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskWorkRecordServiceImpl.java index 16c3242..6b6cedb 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskWorkRecordServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskWorkRecordServiceImpl.java @@ -1,5 +1,6 @@ package com.pusong.business.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.pusong.business.domain.PsTaskAppoint; import com.pusong.business.domain.PsTaskMain; @@ -49,10 +50,11 @@ public class PsTaskWorkRecordServiceImpl implements IPsTaskWorkRecordService { */ @Override public List queryListByAppointId(Long id) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(PsTaskWorkRecord::getDelFlag,"0"); - lqw.eq(PsTaskWorkRecord::getTaskAppointId,id); - return baseMapper.selectVoList(lqw); + QueryWrapper lqw = new QueryWrapper(); + lqw.eq("record.del_flag", "0"); + lqw.eq("record.task_appoint_id", id); + + return baseMapper.selectListAndUser(lqw); } /** * 根据主任务id查询工作进度列表 @@ -68,8 +70,11 @@ public class PsTaskWorkRecordServiceImpl implements IPsTaskWorkRecordService { } //转map Map map = list.stream().collect(Collectors.toMap(PsTaskAppoint::getId, Function.identity())); - List lis = baseMapper.selectVoList(Wrappers.lambdaQuery() - .eq(PsTaskWorkRecord::getDelFlag, "0").in(PsTaskWorkRecord::getTaskAppointId, map.keySet())); + + QueryWrapper lqw = new QueryWrapper(); + lqw.eq("record.del_flag", "0"); + lqw.in("record.task_appoint_id", map.keySet()); + List lis = baseMapper.selectListAndUser(lqw); lis.forEach(item->{ item.setExecutor(map.get(item.getTaskAppointId()).getExecutor()); }); 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 cb8c427..d7d4315 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 @@ -224,7 +224,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) cost from ps_contract_info info left join ps_custom_info cus on info.custom_id = cus.id - left join ps_contract_pay pay on info.contract_code = pay.contract_code + left join ps_contract_pay pay on info.contract_code = pay.contract_code AND pay.pay_status = '1' + + AND pay.create_time >= #{startTime} + + + AND pay.create_time >= #{endTime} + left join sys_user_post up on up.user_id = info.custom_manager diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsHomeMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsHomeMapper.xml index e7535fe..c565292 100644 --- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsHomeMapper.xml +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsHomeMapper.xml @@ -52,7 +52,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml index 86b77d7..3d75726 100644 --- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml @@ -75,9 +75,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join ps_company_info com on main.company_id = com.id left join ps_custom_info cus on main.custom_id = cus.id left join sys_user usr on cus.custom_manager = usr.user_id - left join ps_contract_business bus on bus.contract_code = con.contract_code and bus.company_id = main.service_company_id and bus.del_flag = '0' + + - + select + record.*, + usr.nick_name createBy + from ps_task_work_record record + left join sys_user usr on usr.user_id = record.create_by + ${ew.getCustomSqlSegment} + + diff --git a/pusong-modules/pusong-system/src/main/java/com/pusong/system/RoleEnum.java b/pusong-modules/pusong-system/src/main/java/com/pusong/system/RoleEnum.java index 98388b5..585a109 100644 --- a/pusong-modules/pusong-system/src/main/java/com/pusong/system/RoleEnum.java +++ b/pusong-modules/pusong-system/src/main/java/com/pusong/system/RoleEnum.java @@ -12,12 +12,14 @@ public enum RoleEnum { superadmin("superadmin","超级管理员"), admin("admin","管理员"), - xiaoshou("xiaoshou","销售"), + xiaoshou("xsry","销售"), + xszg("xszg","销售主管"), zxzg("zxzg","执行主管"), tqzxry("tqzxry","特勤执行人员"), wqzxry("wqzxry","外勤执行人员"), nqzxry("nqzxry","内勤执行人员"), caiwu("caiwu","财务"), + cwzg("cwzg","财务主管"), zongcai("zongcai","总裁"), topmanage("topmanage","总经理"), stopacc1("stopaccount","停止代账1"), diff --git a/pusong-modules/pusong-system/src/main/java/com/pusong/system/controller/system/SysNoticeController.java b/pusong-modules/pusong-system/src/main/java/com/pusong/system/controller/system/SysNoticeController.java index e5069be..ef31b19 100644 --- a/pusong-modules/pusong-system/src/main/java/com/pusong/system/controller/system/SysNoticeController.java +++ b/pusong-modules/pusong-system/src/main/java/com/pusong/system/controller/system/SysNoticeController.java @@ -1,6 +1,10 @@ package com.pusong.system.controller.system; import cn.dev33.satoken.annotation.SaCheckPermission; +import com.pusong.common.core.utils.MapstructUtils; +import com.pusong.common.json.utils.JsonUtils; +import com.pusong.common.websocket.dto.WebSocketMessageDto; +import com.pusong.system.domain.SysNotice; import lombok.RequiredArgsConstructor; import com.pusong.common.core.domain.R; import com.pusong.common.core.service.DictService; @@ -61,8 +65,11 @@ public class SysNoticeController extends BaseController { if (rows <= 0) { return R.fail(); } - String type = dictService.getDictLabel("sys_notice_type", notice.getNoticeType()); - WebSocketUtils.publishAll("[" + type + "] " + notice.getNoticeTitle()); + String type = dictService.getDictLabel("sys_notice_type", notice.getNoticeContent()); + notice.setNoticeContent("[" + type + "] " + notice.getNoticeTitle()); + SysNotice sysNotice = MapstructUtils.convert(notice, SysNotice.class); + SysNoticeVo vo = MapstructUtils.convert(sysNotice, SysNoticeVo.class); + WebSocketUtils.publishAll(JsonUtils.toJsonString(vo)); return R.ok(); } diff --git a/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/bo/SysNoticeBo.java b/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/bo/SysNoticeBo.java index 6a28998..e7b846f 100644 --- a/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/bo/SysNoticeBo.java +++ b/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/bo/SysNoticeBo.java @@ -97,7 +97,7 @@ public class SysNoticeBo extends BaseEntity { noticeBo.setNoticeTitle("通知"); noticeBo.setStatus("0"); noticeBo.setNoticeContent("\uD83C\uDF89【公海商机来袭!】\uD83C\uDF89,【公海】有新客户啦!速来认领,抢占先机!"); - noticeBo.setRecRole(Arrays.asList(RoleEnum.xiaoshou.getCode())); + noticeBo.setRecRole(Arrays.asList(RoleEnum.xiaoshou.getCode(), RoleEnum.xszg.getCode())); noticeBo.setJumpType(0); return noticeBo; } @@ -107,32 +107,32 @@ public class SysNoticeBo extends BaseEntity { * @param uid * @return */ - public static SysNoticeBo getGonghaiShenpiInstance(long uid){ + public static SysNoticeBo getGonghaiShenpiInstance(long uid, String customName){ SysNoticeBo noticeBo = new SysNoticeBo(); noticeBo.setNoticeType("1"); noticeBo.setNoticeTitle("通知"); noticeBo.setStatus("0"); - noticeBo.setNoticeContent("认领客户【客户姓名】审批通过,客户已就绪,速速联系,把握良机!"); + noticeBo.setNoticeContent("认领客户【"+ customName +"】审批通过,客户已就绪,速速联系,把握良机!"); noticeBo.setRecUid(uid); noticeBo.setJumpType(0); return noticeBo; } - public static SysNoticeBo getGonghaiZhipaiInstance(long uid){ + public static SysNoticeBo getGonghaiZhipaiInstance(long uid, String customName){ SysNoticeBo noticeBo = new SysNoticeBo(); noticeBo.setNoticeType("1"); noticeBo.setNoticeTitle("通知"); noticeBo.setStatus("0"); - noticeBo.setNoticeContent("\uD83D\uDCAA客户【客户姓名】已派至名下,把握良机,全力出击,成交在望,动起来!"); + noticeBo.setNoticeContent("\uD83D\uDCAA客户【"+ customName +"】已派至名下,把握良机,全力出击,成交在望,动起来!"); noticeBo.setRecUid(uid); noticeBo.setJumpType(0); return noticeBo; } - public static SysNoticeBo getGonghaiZhipaiErrorInstance(long uid, String desc){ + public static SysNoticeBo getGonghaiZhipaiErrorInstance(long uid, String customName, String desc){ SysNoticeBo noticeBo = new SysNoticeBo(); noticeBo.setNoticeType("1"); noticeBo.setNoticeTitle("通知"); noticeBo.setStatus("0"); - noticeBo.setNoticeContent("认领客户【客户姓名】审批未过,另选良缘,销售英雄,再攀高峰!拒绝原因:" + desc); + noticeBo.setNoticeContent("认领客户【"+ customName +"】审批未过,另选良缘,销售英雄,再攀高峰!拒绝原因:" + desc); noticeBo.setRecUid(uid); noticeBo.setJumpType(0); return noticeBo; @@ -273,7 +273,7 @@ public class SysNoticeBo extends BaseEntity { noticeBo.setNoticeTitle("通知"); noticeBo.setStatus("0"); noticeBo.setNoticeContent("有一笔【"+ coustomName +"】的待处理的退款,请及时处理。"); - noticeBo.setRecRole(Arrays.asList(RoleEnum.caiwu.getCode())); + noticeBo.setRecRole(Arrays.asList(RoleEnum.caiwu.getCode(), RoleEnum.cwzg.getCode())); noticeBo.setJumpType(0); return noticeBo; } diff --git a/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysNoticeServiceImpl.java b/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysNoticeServiceImpl.java index b76ab0a..e7d7411 100644 --- a/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysNoticeServiceImpl.java +++ b/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysNoticeServiceImpl.java @@ -160,14 +160,11 @@ public class SysNoticeServiceImpl implements ISysNoticeService { for (SysNotice insertDatum : insertData) { SysNoticeVo vo = MapstructUtils.convert(insertDatum, SysNoticeVo.class); WebSocketMessageDto webSocketMessage = new WebSocketMessageDto(); -// webSocketMessage.setMessage(bo.getNoticeContent()); webSocketMessage.setMessage(JsonUtils.toJsonString(vo)); webSocketMessage.setSessionKeys(Arrays.asList(insertDatum.getRecUid())); WebSocketUtils.publishMessage(webSocketMessage); } - - return 1; }catch (Exception e){ logger.error("sendNotice error", e);