diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsTaskController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsTaskController.java index ce14a07..b4179ce 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsTaskController.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsTaskController.java @@ -129,7 +129,7 @@ public class PsTaskController extends BaseController { @SaCheckPermission("business:task:list") @GetMapping("/childFinish") @RepeatSubmit() - public R childFinish(@NotNull Long id,String desc) { + public R childFinish(@NotNull Long id, String desc) { psTaskMainService.finishChild(id, desc); return R.ok(); } @@ -155,7 +155,7 @@ public class PsTaskController extends BaseController { @PostMapping("/reset") @RepeatSubmit() public R taskReset(@Validated @RequestBody ResetAppointBo appointBo) { - psTaskMainService.taskReset(appointBo.getId(), appointBo.getExecutorId()); + psTaskMainService.taskReset(appointBo.getId(), appointBo.getAppointType(), appointBo.getExecutorId()); return R.ok(); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/ResetAppointBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/ResetAppointBo.java index d266190..68d59e9 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/ResetAppointBo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/ResetAppointBo.java @@ -14,6 +14,11 @@ public class ResetAppointBo { */ @NotNull private Long id; + + /** + * 任务委派类型(1内勤,2外勤,3特勤) + */ + private String appointType; /** * 执行者用户id */ diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/ApproverTypeEnum.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/ApproverTypeEnum.java index 2da8af4..ee5603f 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/ApproverTypeEnum.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/ApproverTypeEnum.java @@ -1,5 +1,6 @@ package com.pusong.business.enums; +import com.pusong.system.MenuEnum; import lombok.AllArgsConstructor; import lombok.Getter; @@ -9,17 +10,18 @@ import lombok.Getter; @Getter @AllArgsConstructor public enum ApproverTypeEnum { - UPDATE("update","修改合同审批"), - CANCELLA("cancellation","作废合同审批"), - PAY("pay","合同回款审批"), - SIGN("sign","合同签章审批"), - ROLBACK("rolback","回传合同审批"), - TASKFINISH("taskFinish","任务完成审批"), - PUBLIC("public","公海认领审批"), - TASKCANCE("taskcance","任务作废审批"), - RETURN("RETURN","退款审批"), - FREE("free","免费工单审批"), - STOPACCOUNT("stopAccount","停止代账"); + UPDATE("update","修改合同审批", MenuEnum.updateContract), + CANCELLA("cancellation","作废合同审批", MenuEnum.zuofei), + PAY("pay","合同回款审批", MenuEnum.pay), + SIGN("sign","合同签章审批", MenuEnum.sign), + ROLBACK("rolback","回传合同审批", MenuEnum.rollpdf), + TASKFINISH("taskFinish","任务完成审批", MenuEnum.taskFinish), + PUBLIC("public","公海认领审批", MenuEnum.gonghai), + TASKCANCE("taskcance","任务作废审批", MenuEnum.zuofei), + RETURN("RETURN","退款审批", MenuEnum.returnPay), + FREE("free","免费工单审批", MenuEnum.freeTask), + STOPACCOUNT("stopAccount","停止代账", MenuEnum.stopAcc); private String code; private String text; + private MenuEnum menuEnum; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsCompanyInfoMapper.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsCompanyInfoMapper.java index fe256c1..5e28eb5 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsCompanyInfoMapper.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsCompanyInfoMapper.java @@ -24,10 +24,10 @@ import java.util.List; public interface PsCompanyInfoMapper extends BaseMapperPlus { Page selectPageList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); - @DataPermission({ -// @DataColumn(key = "deptName", value = "appo.create_dept"), - @DataColumn(key = "userName", value = "usr.user_id") - }) +// @DataPermission({ +//// @DataColumn(key = "deptName", value = "appo.create_dept"), +// @DataColumn(key = "userName", value = "fsu.user_id") +// }) Page selectPageList2(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); List selectServiceCompanyList(@Param(Constants.WRAPPER) Wrapper queryWrapper); diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskService.java index c793b89..4ebaf66 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskService.java @@ -125,7 +125,7 @@ public interface IPsTaskService { * @param id 任务委派表id * @param executorId 任务新的执行者id */ - void taskReset(Long id, List executorId); + void taskReset(Long id, String appointType, List executorId); /** * 免费工单任务作废 * @param id 任务主表id diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ApproverAbstractServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ApproverAbstractServiceImpl.java index b86a202..cedd21b 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ApproverAbstractServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ApproverAbstractServiceImpl.java @@ -19,10 +19,14 @@ import com.pusong.business.mapper.PsContractPayMapper; import com.pusong.business.service.IPsCompanyInfoService; import com.pusong.business.service.approver.ApproverContainer; import com.pusong.business.service.approver.ApproverService; +import com.pusong.common.core.domain.model.LoginUser; import com.pusong.common.core.exception.ServiceException; import com.pusong.common.core.utils.DateUtils; import com.pusong.common.core.utils.StringUtils; import com.pusong.common.mybatis.core.page.PageQuery; +import com.pusong.common.satoken.utils.LoginHelper; +import com.pusong.system.domain.bo.SysNoticeBo; +import com.pusong.system.service.ISysNoticeService; import jakarta.annotation.PostConstruct; import jakarta.annotation.Resource; @@ -47,6 +51,8 @@ public abstract class ApproverAbstractServiceImpl implements ApproverService { private PsContractPayMapper baseMapper; @Resource private IPsCompanyInfoService companyInfoService; + @Resource + private ISysNoticeService noticeService; /** * 通用申请方法 * @param bussinessId @@ -58,7 +64,7 @@ public abstract class ApproverAbstractServiceImpl implements ApproverService { LambdaQueryWrapper wq = Wrappers.lambdaQuery().eq(PsApproverRecord::getDelFlag, "0") .eq(PsApproverRecord::getBusinessType, approverType()) .eq(PsApproverRecord::getApproverStatus, ApproverStatusEnum.INIT.getCode()); - if(StringUtils.equals(approverType(), ApproverTypeEnum.RETURN.getCode()) || StringUtils.equals(approverType(), ApproverTypeEnum.PAY.getCode())){ + if(StringUtils.equals(approverType().getCode(), ApproverTypeEnum.RETURN.getCode()) || StringUtils.equals(approverType().getCode(), ApproverTypeEnum.PAY.getCode())){ wq.eq(PsApproverRecord::getContractCode,contractCode); }else{ wq.eq(PsApproverRecord::getBusinessId,bussinessId); @@ -71,19 +77,22 @@ public abstract class ApproverAbstractServiceImpl implements ApproverService { PsApproverRecord record = new PsApproverRecord(); record.setBusinessId(bussinessId); record.setContractCode(contractCode); - record.setBusinessType(approverType()); + record.setBusinessType(approverType().getCode()); record.setApplyDesc(desc); record.setUpdateData(updateData); record.setApplyDate(new Date()); record.setApproverStatus(ApproverStatusEnum.INIT.getCode()); approverRecordMapper.insert(record); + LoginUser loginUser = LoginHelper.getLoginUser(); + + noticeService.sendNotice(SysNoticeBo.getWaitApplyInstance(loginUser.getNickname(), approverType().getMenuEnum())); } - protected abstract String approverType(); + protected abstract ApproverTypeEnum approverType(); @PostConstruct public void register() { - approverContainer.registerService(approverType(), this); + approverContainer.registerService(approverType().getCode(), this); } /** diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/CancellaApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/CancellaApproverServiceImpl.java index e82f35b..2f3a786 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/CancellaApproverServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/CancellaApproverServiceImpl.java @@ -30,8 +30,8 @@ import java.util.List; @Slf4j public class CancellaApproverServiceImpl extends ApproverAbstractServiceImpl { @Override - public String approverType() { - return ApproverTypeEnum.CANCELLA.getCode(); + public ApproverTypeEnum approverType() { + return ApproverTypeEnum.CANCELLA; } private final IPsContractInfoService contractInfoService; private final PsTaskMainMapper taskMainMapper; diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/FreeApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/FreeApproverServiceImpl.java index 0d0a64f..d6ad250 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/FreeApproverServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/FreeApproverServiceImpl.java @@ -41,8 +41,8 @@ import java.util.List; @Slf4j public class FreeApproverServiceImpl extends ApproverAbstractServiceImpl { @Override - public String approverType() { - return ApproverTypeEnum.FREE.getCode(); + public ApproverTypeEnum approverType() { + return ApproverTypeEnum.FREE; } private final PsTaskMainMapper taskMainMapper; private final PsTaskAppointMapper taskAppointMapper; @@ -90,7 +90,8 @@ public class FreeApproverServiceImpl extends ApproverAbstractServiceImpl { @Override public void fail(PsApproverRecord psApproverRecord) { PsCompanyInfoVo psCompanyInfoVo = companyInfoService.queryById(Long.valueOf(psApproverRecord.getBusinessId())); -// noticeService.sendNotice(SysNoticeBo.getFreeTaskErrorInstance(psCompanyInfoVo.getCompanyName())); + noticeService.sendNotice(SysNoticeBo.getFreeTaskErrorToUidInstance(psApproverRecord.getCreateBy(), psCompanyInfoVo.getCompanyName(), psApproverRecord.getApproverDesc())); + noticeService.sendNotice(SysNoticeBo.getFreeTaskErrorToRoleInstance(psCompanyInfoVo.getCompanyName(), psApproverRecord.getApproverDesc())); } /** 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 da533b7..1949c51 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 @@ -33,8 +33,8 @@ public class PayContractApproverServiceImpl extends ApproverAbstractServiceImpl private final IPsTaskService taskMainService; private final ISysNoticeService noticeService; @Override - public String approverType() { - return ApproverTypeEnum.PAY.getCode(); + public ApproverTypeEnum approverType() { + return ApproverTypeEnum.PAY; } @@ -87,6 +87,8 @@ public class PayContractApproverServiceImpl extends ApproverAbstractServiceImpl psTaskMain.setCustomId(info.getCustomId()); psTaskMain.setServiceCompanyId(psCompanyInfoVo.getId()); psTaskMainList.add(psTaskMain); + + noticeService.sendNotice(SysNoticeBo.getNewTaskInstance(psCompanyInfoVo.getCompanyName())); } taskMainService.insertBatch(psTaskMainList); } 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 ba8fd8e..5dcbc26 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 @@ -42,8 +42,8 @@ import java.util.stream.Collectors; @Slf4j public class PublicApproverServiceImpl extends ApproverAbstractServiceImpl { @Override - public String approverType() { - return ApproverTypeEnum.PUBLIC.getCode(); + public ApproverTypeEnum approverType() { + return ApproverTypeEnum.PUBLIC; } private final PsCustomInfoMapper customInfoMapper; @Resource diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ReturnApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ReturnApproverServiceImpl.java index 1cf477b..75cd783 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ReturnApproverServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ReturnApproverServiceImpl.java @@ -44,8 +44,8 @@ public class ReturnApproverServiceImpl extends ApproverAbstractServiceImpl { @Resource private PsApproverRecordMapper recordMapper; @Override - public String approverType() { - return ApproverTypeEnum.RETURN.getCode(); + public ApproverTypeEnum approverType() { + return ApproverTypeEnum.RETURN; } private final PsContractPayMapper baseMapper; diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/RolbackApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/RolbackApproverServiceImpl.java index d7053be..edfd785 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/RolbackApproverServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/RolbackApproverServiceImpl.java @@ -29,8 +29,8 @@ import java.util.List; @Slf4j public class RolbackApproverServiceImpl extends ApproverAbstractServiceImpl { @Override - public String approverType() { - return ApproverTypeEnum.ROLBACK.getCode(); + public ApproverTypeEnum approverType() { + return ApproverTypeEnum.ROLBACK; } private final IPsContractBusinessService businessService; private final IPsContractInfoService contractInfoService; diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/SignApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/SignApproverServiceImpl.java index 99e2a70..95f3cbc 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/SignApproverServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/SignApproverServiceImpl.java @@ -31,8 +31,8 @@ import java.util.List; @Slf4j public class SignApproverServiceImpl extends ApproverAbstractServiceImpl { @Override - public String approverType() { - return ApproverTypeEnum.SIGN.getCode(); + public ApproverTypeEnum approverType() { + return ApproverTypeEnum.SIGN; } private final IPsContractBusinessService businessService; private final ISysNoticeService noticeService; diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/StopAccountServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/StopAccountServiceImpl.java index 351b2fe..3ed9f8e 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/StopAccountServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/StopAccountServiceImpl.java @@ -22,6 +22,8 @@ import com.pusong.business.service.IPsContractInfoService; import com.pusong.common.core.utils.DateUtils; import com.pusong.common.core.utils.StringUtils; import com.pusong.common.mybatis.core.page.PageQuery; +import com.pusong.system.domain.bo.SysNoticeBo; +import com.pusong.system.service.ISysNoticeService; import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -38,8 +40,8 @@ import java.util.List; @Slf4j public class StopAccountServiceImpl extends ApproverAbstractServiceImpl { @Override - public String approverType() { - return ApproverTypeEnum.STOPACCOUNT.getCode(); + public ApproverTypeEnum approverType() { + return ApproverTypeEnum.STOPACCOUNT; } private final PsTaskMainMapper taskMainMapper; private final PsTaskAppointMapper taskAppointMapper; @@ -49,12 +51,17 @@ public class StopAccountServiceImpl extends ApproverAbstractServiceImpl { private PsApproverRecordMapper recordMapper; private final IPsCompanyInfoService psCompanyInfoService; + + private final ISysNoticeService noticeService; @Override public void success(PsApproverRecord psApproverRecord) { if (ApproverStepEnum.INIT.getCode().equals(psApproverRecord.getUpdateData())){ //转给总裁 psApproverRecord.setUpdateData(ApproverStepEnum.CW_APPLY.getCode()); psApproverRecord.setApproverStatus(ApproverStatusEnum.INIT.getCode()); + + PsCompanyInfoVo psCompanyInfoVo = psCompanyInfoService.queryById(Long.valueOf(psApproverRecord.getBusinessId())); + noticeService.sendNotice(SysNoticeBo.getStopAccount1Instance(psApproverRecord.getCreateBy(), psCompanyInfoVo.getCompanyName())); return; } if (ApproverStepEnum.CW_APPLY.getCode().equals(psApproverRecord.getUpdateData())){ @@ -64,6 +71,9 @@ public class StopAccountServiceImpl extends ApproverAbstractServiceImpl { bo.setId(Long.valueOf(psApproverRecord.getBusinessId())); bo.setServiceStatus(0); psCompanyInfoService.update(bo); + + PsCompanyInfoVo psCompanyInfoVo = psCompanyInfoService.queryById(Long.valueOf(psApproverRecord.getBusinessId())); + noticeService.sendNotice(SysNoticeBo.getStopAccount2Instance(psApproverRecord.getCreateBy(), psCompanyInfoVo.getCompanyName())); } } @@ -73,7 +83,8 @@ public class StopAccountServiceImpl extends ApproverAbstractServiceImpl { */ @Override public void fail(PsApproverRecord psApproverRecord) { - + PsCompanyInfoVo psCompanyInfoVo = psCompanyInfoService.queryById(Long.valueOf(psApproverRecord.getBusinessId())); + noticeService.sendNotice(SysNoticeBo.getStopAccountErrorInstance(psApproverRecord.getCreateBy(), psCompanyInfoVo.getCompanyName(), psApproverRecord.getApproverDesc())); } @Override diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/TaskCancellaApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/TaskCancellaApproverServiceImpl.java index 289a5a9..5e80ff8 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/TaskCancellaApproverServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/TaskCancellaApproverServiceImpl.java @@ -29,8 +29,8 @@ import java.util.List; @Slf4j public class TaskCancellaApproverServiceImpl extends ApproverAbstractServiceImpl { @Override - public String approverType() { - return ApproverTypeEnum.TASKCANCE.getCode(); + public ApproverTypeEnum approverType() { + return ApproverTypeEnum.TASKCANCE; } private final PsTaskMainMapper taskMainMapper; private final PsTaskAppointMapper taskAppointMapper; diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/TaskFinishApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/TaskFinishApproverServiceImpl.java index a971b82..6cab6f1 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/TaskFinishApproverServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/TaskFinishApproverServiceImpl.java @@ -26,8 +26,8 @@ import java.util.Date; @Slf4j public class TaskFinishApproverServiceImpl extends ApproverAbstractServiceImpl { @Override - public String approverType() { - return ApproverTypeEnum.TASKFINISH.getCode(); + public ApproverTypeEnum approverType() { + return ApproverTypeEnum.TASKFINISH; } private final PsTaskAppointMapper taskAppointMapper; 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 76a3f64..f37b354 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 @@ -28,8 +28,8 @@ import org.springframework.stereotype.Service; @Slf4j public class UpdateContractApproverServiceImpl extends ApproverAbstractServiceImpl { @Override - public String approverType() { - return ApproverTypeEnum.UPDATE.getCode(); + public ApproverTypeEnum approverType() { + return ApproverTypeEnum.UPDATE; } private final IPsContractBusinessService businessService; private final IPsContractInfoService contractInfoService; diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java index 0a8d205..94d4502 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java @@ -18,15 +18,22 @@ import com.pusong.business.mapper.*; import com.pusong.business.service.IPsCompanyInfoService; import com.pusong.business.service.approver.ApproverContainer; import com.pusong.business.service.approver.ApproverService; +import com.pusong.common.core.domain.dto.RoleDTO; +import com.pusong.common.core.domain.model.LoginUser; import com.pusong.common.core.exception.ServiceException; import com.pusong.common.core.utils.DateUtils; import com.pusong.common.core.utils.MapstructUtils; import com.pusong.common.core.utils.StringUtils; import com.pusong.common.mybatis.core.page.PageQuery; import com.pusong.common.mybatis.core.page.TableDataInfo; +import com.pusong.common.mybatis.enums.DataScopeType; +import com.pusong.common.mybatis.helper.DataPermissionHelper; +import com.pusong.common.satoken.utils.LoginHelper; import com.pusong.system.domain.SysUser; +import com.pusong.system.domain.bo.SysNoticeBo; import com.pusong.system.domain.vo.SysUserVo; import com.pusong.system.mapper.SysUserMapper; +import com.pusong.system.service.ISysNoticeService; import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; @@ -63,6 +70,8 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService { private SysUserMapper sysUserMapper; + private final ISysNoticeService noticeService; + /** * 查询公司信息 * @@ -142,7 +151,23 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService { lqw.like(bo.getMobile() != null,"com.contact_person_phone", bo.getMobile()); lqw.like(bo.getCompanyName() != null,"com.company_name", bo.getCompanyName()); lqw.eq(bo.getServiceStatus() != null,"com.service_status", bo.getServiceStatus()); - lqw.exists(StringUtils.isNotBlank(bo.getUserName()),"select 1 from sys_user fsu LEFT JOIN ps_company_follow cf on com.id = cf.company_id where fsu.user_id = cf.user_id and fsu.nick_name like '%"+bo.getUserName()+"%'"); + + + + String followUserSql = ""; + if (StringUtils.isNotBlank(bo.getUserName())){ + followUserSql += " and fsu.nick_name like '%" + bo.getUserName() + "%'"; + } + LoginUser user = LoginHelper.getLoginUser(); + for (RoleDTO role : user.getRoles()) { + DataScopeType type = DataScopeType.findCode(role.getDataScope()); + if (type == DataScopeType.ALL) { + continue; + } + followUserSql += " and fsu.user_id = " + user.getUserId(); + break; + } + lqw.exists(StringUtils.isNotBlank(followUserSql), "select 1 from sys_user fsu LEFT JOIN ps_company_follow cf on com.id = cf.company_id where fsu.user_id = cf.user_id " + followUserSql); //合同未作废,有回款的续费合同 或 合同未作废有完成主任务的 lqw.and( wrapper -> wrapper @@ -199,13 +224,15 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService { LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(PsCompanyFollow::getCompanyId, bo.getCompanyId()); psCompanyFollowMapper.delete(lqw); - + PsCompanyInfoVo psCompanyInfoVo = queryById(bo.getCompanyId()); List listInsert = new ArrayList<>(); for (Long followUser : bo.getListUserId()) { PsCompanyFollow psCompanyFollow = new PsCompanyFollow(); psCompanyFollow.setCompanyId(bo.getCompanyId()); psCompanyFollow.setUserId(followUser); listInsert.add(psCompanyFollow); + + noticeService.sendNotice(SysNoticeBo.getFollowInstance(followUser, psCompanyInfoVo.getCompanyName())); } psCompanyFollowMapper.insertBatch(listInsert); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java index 1d6e244..1c92323 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java @@ -39,6 +39,7 @@ import jodd.util.StringUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -80,7 +81,9 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { @Resource private final ApproverContainer container; - private final IPsTaskService taskMainService; + @Autowired + @Lazy + private IPsTaskService taskMainService; private final PsTaskMainMapper taskMainMapper; private final PsTaskAppointMapper taskAppointMapper; private final PsApproverRecordMapper recordMapper; diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java index 3df955e..b7cf7bd 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java @@ -30,6 +30,7 @@ import com.pusong.system.service.ISysOssService; import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -56,8 +57,9 @@ public class PsContractPayServiceImpl implements IPsContractPayService { @Resource private final ApproverContainer container; private final IPsApproverRecordService approverRecordService; -// @Autowired -// private IPsContractInfoService contractInfoService; + @Autowired + @Lazy + private IPsContractInfoService contractInfoService; private final ISysNoticeService noticeService; /** * 查询合同回款记录列表 @@ -235,8 +237,8 @@ public class PsContractPayServiceImpl implements IPsContractPayService { info.setPayStatus(PayStatusEnum.SUCCESS.getCode()); baseMapper.updateById(info); -// PsContractInfoVo src = contractInfoService.queryContractByCode(info.getContractCode()); -// noticeService.sendNotice(SysNoticeBo.getReturnPayingInstance(info.getCreateBy(), src.getPsCustomInfoVo().getCustomName())); + PsContractInfoVo src = contractInfoService.queryContractByCode(info.getContractCode()); + noticeService.sendNotice(SysNoticeBo.getReturnPayingInstance(info.getCreateBy(), src.getPsCustomInfoVo().getCustomName())); return info.getContractCode(); } 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 7b0af40..469e77a 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 @@ -25,8 +25,11 @@ import com.pusong.common.core.utils.StringUtils; import com.pusong.common.mybatis.core.page.PageQuery; import com.pusong.common.mybatis.core.page.TableDataInfo; import com.pusong.common.satoken.utils.LoginHelper; +import com.pusong.system.domain.SysUser; import com.pusong.system.domain.bo.SysNoticeBo; import com.pusong.system.domain.vo.SysOssVo; +import com.pusong.system.domain.vo.SysUserVo; +import com.pusong.system.mapper.SysUserMapper; import com.pusong.system.service.ISysNoticeService; import com.pusong.system.service.ISysOssService; import jakarta.annotation.Resource; @@ -35,6 +38,7 @@ import org.apache.ibatis.executor.BatchResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -69,7 +73,11 @@ public class PsTaskServiceImpl implements IPsTaskService { @Autowired private PsContractBusinessMapper businessMapper; private final ISysNoticeService noticeService; -// private final IPsContractInfoService contractInfoService; + @Autowired + @Lazy + private final IPsContractInfoService contractInfoService; + + private SysUserMapper sysUserMapper; /** * 新增主任务 @@ -411,8 +419,8 @@ public class PsTaskServiceImpl implements IPsTaskService { main.setFinishDate(new Date()); baseMapper.updateById(main); -// PsContractInfoVo contract = contractInfoService.queryContractByCode(main.getContractCode()); -// noticeService.sendNotice(SysNoticeBo.getTaskFinishInstance(contract.getCustomManager(), contract.getPsCustomInfoVo().getCustomName())); + PsContractInfoVo contract = contractInfoService.queryContractByCode(main.getContractCode()); + noticeService.sendNotice(SysNoticeBo.getTaskFinishInstance(contract.getCustomManager(), contract.getPsCustomInfoVo().getCustomName())); return main.getContractCode(); } @@ -437,6 +445,27 @@ public class PsTaskServiceImpl implements IPsTaskService { appoint.setFinishDate(new Date()); appoint.setTaskDesc(desc); appointMapper.updateById(appoint); + + + PsTaskMain mainTask = baseMapper.selectById(appoint.getTaskId()); + PsCompanyInfoVo psCompanyInfoVo = null; + if (mainTask != null){ + psCompanyInfoVo = companyInfoService.queryById(mainTask.getServiceCompanyId()); + } + SysUserVo sysUserVo = sysUserMapper.selectVoById(appoint.getExecutor()); + String excuterName = sysUserVo == null ? "" : sysUserVo.getNickName(); + + if (psCompanyInfoVo != null){ + if ("1".equals(appoint.getAppointType())){ + noticeService.sendNotice(SysNoticeBo.getNqFinishInstance(psCompanyInfoVo.getCompanyName(), excuterName)); + }else if ("2".equals(appoint.getAppointType())){ + noticeService.sendNotice(SysNoticeBo.getWqFinishInstance(psCompanyInfoVo.getCompanyName(), excuterName)); + }else if ("3".equals(appoint.getAppointType())){ + noticeService.sendNotice(SysNoticeBo.getTqFinishInstance(psCompanyInfoVo.getCompanyName(), excuterName)); + } + } + + } /** @@ -463,9 +492,13 @@ public class PsTaskServiceImpl implements IPsTaskService { * @param id 任务委派表id * @param executorId 任务新的执行者id */ - public void taskReset(Long id, List executorIds){ + public void taskReset(Long id, String appointType, List executorIds){ + if (appointType == null){ + appointType = "1"; + } QueryWrapper lqw = new QueryWrapper<>(); lqw.eq("task_id", id); + lqw.eq("appoint_type", appointType); List appoints = appointMapper.selectList(lqw); if (appoints.isEmpty()){ throw new ServiceException("当前未指派任何人, 任务状态无法改派"); @@ -490,6 +523,15 @@ public class PsTaskServiceImpl implements IPsTaskService { removeParam.in("executor", remove); appointMapper.delete(removeParam); + PsTaskMain mainTask = baseMapper.selectById((appoints.get(0).getTaskId())); + PsCompanyInfoVo psCompanyInfoVo = null; + if (mainTask != null){ + psCompanyInfoVo = companyInfoService.queryById(mainTask.getServiceCompanyId()); + } + QueryWrapper userQuery = new QueryWrapper<>(); + userQuery.in("user_id", updateExecutorIdSet); + List sysUserVos = sysUserMapper.selectUserList(userQuery); + String excuterNames = sysUserVos.stream().map(SysUserVo::getUserName).collect(Collectors.joining("、")); List insertList = new ArrayList<>(); for (Long userIdStr : updateExecutorIdSet) { @@ -501,6 +543,17 @@ public class PsTaskServiceImpl implements IPsTaskService { psTaskAppoint.setExecutor(userIdStr); psTaskAppoint.setTaskContentDesc(appoints.get(0).getTaskContentDesc()); insertList.add(psTaskAppoint); + + if (psCompanyInfoVo != null){ + if ("1".equals(appointType)){ + noticeService.sendNotice(SysNoticeBo.getNqResetInstance(userIdStr, psCompanyInfoVo.getCompanyName(), excuterNames)); + }else if ("2".equals(appointType)){ + noticeService.sendNotice(SysNoticeBo.getWqResetInstance(userIdStr, psCompanyInfoVo.getCompanyName(), excuterNames)); + }else if ("3".equals(appointType)){ + noticeService.sendNotice(SysNoticeBo.getTqResetInstance(userIdStr, psCompanyInfoVo.getCompanyName(), excuterNames)); + } + } + } appointMapper.insert(insertList); } @@ -606,8 +659,8 @@ public class PsTaskServiceImpl implements IPsTaskService { info.setTaskStatus(TaskStatusEnum.FINISH.getCode()); baseMapper.updateById(info); -// PsContractInfoVo contract = contractInfoService.queryContractByCode(info.getContractCode()); -// noticeService.sendNotice(SysNoticeBo.getFapiaoInstance(contract.getCustomManager(), contract.getPsCustomInfoVo().getCustomName())); + PsContractInfoVo contract = contractInfoService.queryContractByCode(info.getContractCode()); + noticeService.sendNotice(SysNoticeBo.getFapiaoInstance(contract.getCustomManager(), contract.getPsCustomInfoVo().getCustomName())); } /** * 任务暂停 diff --git a/pusong-modules/pusong-system/src/main/java/com/pusong/system/MenuEnum.java b/pusong-modules/pusong-system/src/main/java/com/pusong/system/MenuEnum.java new file mode 100644 index 0000000..5695134 --- /dev/null +++ b/pusong-modules/pusong-system/src/main/java/com/pusong/system/MenuEnum.java @@ -0,0 +1,26 @@ +package com.pusong.system; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * sys_role表 角色 + */ +@Getter +@AllArgsConstructor +public enum MenuEnum { + sign("approval1","电子签章审批"), + rollpdf("approval2","回传合同审批"), + zuofei("approval4","合同作废审批"), + zxzg("approval5","任务作废审批"), + freeTask("approval8","免费工单审批"), + updateContract("approval3","合同修改审批"), + taskFinish("approval6","任务完成审批"), + pay("approval9","回款审批"), + returnPay("approval7","退款审批"), + stopAcc("approval11","停止代账审批"), + gonghai("approval10","公海审批"), + ; + private String path; + private String text; +} diff --git a/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/SysNotice.java b/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/SysNotice.java index 6616b27..8e0bc85 100644 --- a/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/SysNotice.java +++ b/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/SysNotice.java @@ -52,7 +52,7 @@ public class SysNotice extends TenantEntity { /** * 接收角色 */ - private String recRole; +// private String recRole; /** * 接收uid 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 a6c368c..3589c3a 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 @@ -1,5 +1,6 @@ package com.pusong.system.domain.bo; +import com.pusong.system.MenuEnum; import com.pusong.system.RoleEnum; import io.github.linpeilie.annotations.AutoMapper; import jakarta.validation.constraints.NotBlank; @@ -11,6 +12,8 @@ import com.pusong.common.mybatis.core.domain.BaseEntity; import com.pusong.system.domain.SysNotice; import javax.management.relation.Role; +import java.util.Arrays; +import java.util.List; /** * 通知公告业务对象 sys_notice @@ -64,7 +67,11 @@ public class SysNoticeBo extends BaseEntity { /** * 接收角色 */ - private String recRole; + private List recRole; + /** + * 拥有该菜单的角色 + */ + private String recMenuRole; /** * 接收uid @@ -83,7 +90,7 @@ public class SysNoticeBo extends BaseEntity { noticeBo.setNoticeTitle("通知"); noticeBo.setStatus("0"); noticeBo.setNoticeContent("\uD83C\uDF89【公海商机来袭!】\uD83C\uDF89,【公海】有新客户啦!速来认领,抢占先机!"); - noticeBo.setRecRole(RoleEnum.xiaoshou.getCode()); + noticeBo.setRecRole(Arrays.asList(RoleEnum.xiaoshou.getCode())); noticeBo.setJumpType(0); return noticeBo; } @@ -259,7 +266,7 @@ public class SysNoticeBo extends BaseEntity { noticeBo.setNoticeTitle("通知"); noticeBo.setStatus("0"); noticeBo.setNoticeContent("有一笔【"+ coustomName +"】的待处理的退款,请及时处理。"); - noticeBo.setRecRole(RoleEnum.caiwu.getCode()); + noticeBo.setRecRole(Arrays.asList(RoleEnum.caiwu.getCode())); noticeBo.setJumpType(0); return noticeBo; } @@ -301,7 +308,7 @@ public class SysNoticeBo extends BaseEntity { noticeBo.setNoticeTitle("通知"); noticeBo.setStatus("0"); noticeBo.setNoticeContent("新增【"+ coustomName +"】的开票需求,请及时处理。"); - noticeBo.setRecRole(RoleEnum.caiwu.getCode()); + noticeBo.setRecRole(Arrays.asList(RoleEnum.caiwu.getCode())); noticeBo.setJumpType(0); return noticeBo; } @@ -332,7 +339,7 @@ public class SysNoticeBo extends BaseEntity { noticeBo.setNoticeTitle("通知"); noticeBo.setStatus("0"); noticeBo.setNoticeContent("【"+ serviceCompanyName +"】的免费工单已审批通过,免费工单任务已生成,请继续跟进。"); - noticeBo.setRecRole(RoleEnum.zxzg.getCode()); + noticeBo.setRecRole(Arrays.asList(RoleEnum.zxzg.getCode())); noticeBo.setJumpType(0); return noticeBo; } @@ -346,5 +353,140 @@ public class SysNoticeBo extends BaseEntity { noticeBo.setJumpType(0); return noticeBo; } + public static SysNoticeBo getFreeTaskErrorToRoleInstance(String serviceCompanyName, String desc){ + SysNoticeBo noticeBo = new SysNoticeBo(); + noticeBo.setNoticeType("1"); + noticeBo.setNoticeTitle("通知"); + noticeBo.setStatus("0"); + noticeBo.setNoticeContent("【"+ serviceCompanyName +"】的免费工单已拒绝,请确认相关信息,拒绝原因:" + desc); + noticeBo.setRecRole(Arrays.asList(RoleEnum.zxzg.getCode())); + noticeBo.setJumpType(0); + return noticeBo; + } + public static SysNoticeBo getFollowInstance(long uid, String serviceCompanyName){ + SysNoticeBo noticeBo = new SysNoticeBo(); + noticeBo.setNoticeType("1"); + noticeBo.setNoticeTitle("通知"); + noticeBo.setStatus("0"); + noticeBo.setNoticeContent("【"+ serviceCompanyName +"】的跟进人员分配成功,跟进服务人员:财务人员1、财务人员2"); + noticeBo.setRecUid(uid); + noticeBo.setJumpType(0); + return noticeBo; + } + + + public static SysNoticeBo getStopAccount1Instance(long uid, String serviceCompanyName){ + SysNoticeBo noticeBo = new SysNoticeBo(); + noticeBo.setNoticeType("1"); + noticeBo.setNoticeTitle("通知"); + noticeBo.setStatus("0"); + noticeBo.setNoticeContent("【"+ serviceCompanyName+"】的停止代账服务一级审批已通过,二级审批审批中,请继续跟进。"); + noticeBo.setRecUid(uid); + noticeBo.setJumpType(0); + return noticeBo; + } + public static SysNoticeBo getStopAccount2Instance(long uid, String serviceCompanyName){ + SysNoticeBo noticeBo = new SysNoticeBo(); + noticeBo.setNoticeType("1"); + noticeBo.setNoticeTitle("通知"); + noticeBo.setStatus("0"); + noticeBo.setNoticeContent("【"+ serviceCompanyName +"】的停止代账服务二级审批已通过,该公司的代账服务已终止。" ); + noticeBo.setRecUid(uid); + noticeBo.setJumpType(0); + return noticeBo; + } + public static SysNoticeBo getStopAccountErrorInstance(long uid, String serviceCompanyName, String desc){ + SysNoticeBo noticeBo = new SysNoticeBo(); + noticeBo.setNoticeType("1"); + noticeBo.setNoticeTitle("通知"); + noticeBo.setStatus("0"); + noticeBo.setNoticeContent("【"+ serviceCompanyName +"】的停止代账服务被拒,请确认相关信息,拒绝原因:" + desc); + noticeBo.setRecUid(uid); + noticeBo.setJumpType(0); + return noticeBo; + } + public static SysNoticeBo getNewTaskInstance(String serviceCompanyName){ + SysNoticeBo noticeBo = new SysNoticeBo(); + noticeBo.setNoticeType("1"); + noticeBo.setNoticeTitle("通知"); + noticeBo.setStatus("0"); + noticeBo.setNoticeContent("【"+ serviceCompanyName +"】的合同任务已生成,请及时进行派单!"); + noticeBo.setRecRole(Arrays.asList(RoleEnum.zxzg.getCode())); + noticeBo.setJumpType(0); + return noticeBo; + } + + public static SysNoticeBo getNqResetInstance(Long uid, String serviceCompanyName, String executeNames){ + SysNoticeBo noticeBo = new SysNoticeBo(); + noticeBo.setNoticeType("1"); + noticeBo.setNoticeTitle("通知"); + noticeBo.setStatus("0"); + noticeBo.setNoticeContent("【"+ serviceCompanyName +"】的内勤任务已派单/改派成功,内勤服务人员:" + executeNames); + noticeBo.setRecUid(uid); + noticeBo.setJumpType(0); + return noticeBo; + } + public static SysNoticeBo getWqResetInstance(Long uid, String serviceCompanyName, String executeNames){ + SysNoticeBo noticeBo = new SysNoticeBo(); + noticeBo.setNoticeType("1"); + noticeBo.setNoticeTitle("通知"); + noticeBo.setStatus("0"); + noticeBo.setNoticeContent("【"+ serviceCompanyName +"】的外勤任务已派单/改派成功,外勤服务人员:" + executeNames ); + noticeBo.setRecUid(uid); + noticeBo.setJumpType(0); + return noticeBo; + } + public static SysNoticeBo getTqResetInstance(Long uid, String serviceCompanyName, String executeNames){ + SysNoticeBo noticeBo = new SysNoticeBo(); + noticeBo.setNoticeType("1"); + noticeBo.setNoticeTitle("通知"); + noticeBo.setStatus("0"); + noticeBo.setNoticeContent("【"+ serviceCompanyName +"】的特勤任务已派单/改派成功,特勤服务人员:"+ executeNames); + noticeBo.setRecUid(uid); + noticeBo.setJumpType(0); + return noticeBo; + } + public static SysNoticeBo getNqFinishInstance(String serviceCompanyName, String executeName){ + SysNoticeBo noticeBo = new SysNoticeBo(); + noticeBo.setNoticeType("1"); + noticeBo.setNoticeTitle("通知"); + noticeBo.setStatus("0"); + noticeBo.setNoticeContent("内勤人员【"+ executeName +"】已完成【"+ serviceCompanyName +"】的内勤任务"); + noticeBo.setRecRole(Arrays.asList(RoleEnum.zxzg.getCode())); + noticeBo.setJumpType(0); + return noticeBo; + } + public static SysNoticeBo getWqFinishInstance(String serviceCompanyName, String executeName){ + SysNoticeBo noticeBo = new SysNoticeBo(); + noticeBo.setNoticeType("1"); + noticeBo.setNoticeTitle("通知"); + noticeBo.setStatus("0"); + noticeBo.setNoticeContent("外勤人员【"+ executeName +"】已完成【"+ serviceCompanyName +"】的外勤任务"); + noticeBo.setRecRole(Arrays.asList(RoleEnum.zxzg.getCode())); + noticeBo.setJumpType(0); + return noticeBo; + } + public static SysNoticeBo getTqFinishInstance(String serviceCompanyName, String executeName){ + SysNoticeBo noticeBo = new SysNoticeBo(); + noticeBo.setNoticeType("1"); + noticeBo.setNoticeTitle("通知"); + noticeBo.setStatus("0"); + noticeBo.setNoticeContent("外勤人员【"+ executeName +"】已完成【"+ serviceCompanyName +"】的外勤任务"); + noticeBo.setRecRole(Arrays.asList(RoleEnum.zxzg.getCode())); + noticeBo.setJumpType(0); + return noticeBo; + } + + + public static SysNoticeBo getWaitApplyInstance(String applyUserName, MenuEnum menuEnum){ + SysNoticeBo noticeBo = new SysNoticeBo(); + noticeBo.setNoticeType("1"); + noticeBo.setNoticeTitle("通知"); + noticeBo.setStatus("0"); + noticeBo.setNoticeContent("【"+ applyUserName +"】提交的【" + menuEnum.getText() + "】待你审批!"); + noticeBo.setRecMenuRole(menuEnum.getPath()); + noticeBo.setJumpType(0); + return noticeBo; + } } diff --git a/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/bo/SysUserBo.java b/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/bo/SysUserBo.java index 526ef4e..f41e4f6 100644 --- a/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/bo/SysUserBo.java +++ b/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/bo/SysUserBo.java @@ -12,6 +12,8 @@ import com.pusong.common.core.xss.Xss; import com.pusong.common.mybatis.core.domain.BaseEntity; import com.pusong.system.domain.SysUser; +import java.util.List; + /** * 用户信息业务对象 sys_user * @@ -110,7 +112,7 @@ public class SysUserBo extends BaseEntity { /** * 数据权限 当前角色key */ - private String roleKey; + private List roleKey; /** * 排除不查询的用户(工作流用) diff --git a/pusong-modules/pusong-system/src/main/java/com/pusong/system/mapper/SysRoleMapper.java b/pusong-modules/pusong-system/src/main/java/com/pusong/system/mapper/SysRoleMapper.java index b69fcd9..0c32a45 100644 --- a/pusong-modules/pusong-system/src/main/java/com/pusong/system/mapper/SysRoleMapper.java +++ b/pusong-modules/pusong-system/src/main/java/com/pusong/system/mapper/SysRoleMapper.java @@ -3,6 +3,7 @@ package com.pusong.system.mapper; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.pusong.system.domain.SysMenu; import org.apache.ibatis.annotations.Param; import com.pusong.common.mybatis.annotation.DataColumn; import com.pusong.common.mybatis.annotation.DataPermission; @@ -59,4 +60,7 @@ public interface SysRoleMapper extends BaseMapperPlus { */ List selectRolesByUserId(Long userId); + + List selectRoleByMenuPath(@Param(Constants.WRAPPER) Wrapper queryWrapper); + } 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 6788e9f..6781254 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 @@ -1,7 +1,9 @@ package com.pusong.system.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.pusong.common.core.domain.R; @@ -13,13 +15,16 @@ import com.pusong.common.mybatis.core.page.TableDataInfo; import com.pusong.common.websocket.dto.WebSocketMessageDto; import com.pusong.common.websocket.holder.WebSocketSessionHolder; import com.pusong.common.websocket.utils.WebSocketUtils; +import com.pusong.system.domain.SysMenu; import com.pusong.system.domain.SysNotice; import com.pusong.system.domain.SysUser; import com.pusong.system.domain.bo.SysNoticeBo; import com.pusong.system.domain.bo.SysUserBo; import com.pusong.system.domain.vo.SysNoticeVo; +import com.pusong.system.domain.vo.SysRoleVo; import com.pusong.system.domain.vo.SysUserVo; import com.pusong.system.mapper.SysNoticeMapper; +import com.pusong.system.mapper.SysRoleMapper; import com.pusong.system.mapper.SysUserMapper; import com.pusong.system.service.ISysNoticeService; import com.pusong.system.service.ISysUserService; @@ -30,6 +35,7 @@ import org.springframework.web.socket.WebSocketSession; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** * 公告 服务层实现 @@ -44,6 +50,7 @@ public class SysNoticeServiceImpl implements ISysNoticeService { private final SysUserMapper userMapper; private final DictService dictService; private final ISysUserService userService; + private final SysRoleMapper roleMapper; @Override public TableDataInfo selectPageNoticeList(SysNoticeBo notice, PageQuery pageQuery) { @@ -103,6 +110,15 @@ public class SysNoticeServiceImpl implements ISysNoticeService { String type = dictService.getDictLabel("sys_notice_type", bo.getNoticeType()); List insertData = new ArrayList<>(); List uids = new ArrayList<>(); + + if (bo.getRecMenuRole() != null){ + QueryWrapper qw = Wrappers.query(); + qw.eq("menu.path", bo.getRecMenuRole()); + List sysRoleVos = roleMapper.selectRoleByMenuPath(qw); + List roleKeyList = sysRoleVos.stream().map(SysRoleVo::getRoleKey).toList(); + bo.setRecRole(roleKeyList); + } + if (bo.getRecRole() != null){ SysUserBo query = new SysUserBo(); query.setRoleKey(bo.getRecRole()); diff --git a/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysUserServiceImpl.java b/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysUserServiceImpl.java index c1dd49a..1a1fe9e 100644 --- a/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysUserServiceImpl.java +++ b/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysUserServiceImpl.java @@ -130,7 +130,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService { QueryWrapper wrapper = Wrappers.query(); wrapper.eq("u.del_flag", UserConstants.USER_NORMAL) .eq(ObjectUtil.isNotNull(user.getRoleId()), "r.role_id", user.getRoleId()) - .in(ObjectUtil.isNotNull(user.getRoleKey()), "r.role_key", user.getRoleKey().split(",")) + .in(ObjectUtil.isNotNull(user.getRoleKey()), "r.role_key", user.getRoleKey()) .like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName()) .eq(StringUtils.isNotBlank(user.getStatus()), "u.status", user.getStatus()) .like(StringUtils.isNotBlank(user.getPhonenumber()), "u.phonenumber", user.getPhonenumber()) diff --git a/pusong-modules/pusong-system/src/main/resources/mapper/system/SysRoleMapper.xml b/pusong-modules/pusong-system/src/main/resources/mapper/system/SysRoleMapper.xml index b1edbe1..adc4214 100644 --- a/pusong-modules/pusong-system/src/main/resources/mapper/system/SysRoleMapper.xml +++ b/pusong-modules/pusong-system/src/main/resources/mapper/system/SysRoleMapper.xml @@ -58,4 +58,10 @@ WHERE r.del_flag = '0' and r.role_id = #{roleId} +