From 31200b4a8af9f44b90f9a94a0a65139b1280aa6f Mon Sep 17 00:00:00 2001 From: zt Date: Fri, 28 Feb 2025 10:29:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bgt/AppBgtWageApplicationController.java | 6 +- .../BgtProjectTaskProgressServiceImpl.java | 4 - .../impl/BgtWageApplicationServiceImpl.java | 38 ++++++-- .../common/constants/BgtMessageConstant.java | 92 ++++++++++++++++--- .../com/ruoyi/fbs/domain/vo/AppTaskVO.java | 3 + .../impl/FbsProjectTaskApplyServiceImpl.java | 52 +++++++++++ 6 files changed, 168 insertions(+), 27 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtWageApplicationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtWageApplicationController.java index f0afd81..a8ee607 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtWageApplicationController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtWageApplicationController.java @@ -15,7 +15,6 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -58,12 +57,11 @@ public class AppBgtWageApplicationController extends BaseController { * 新增包工头工资申请 */ @ApiOperation("新增包工头工资申请") - @PreAuthorize("@ss.hasPermi('bgt:application:add')") @Log(title = "包工头工资申请", businessType = BusinessType.INSERT) @RepeatSubmit @PostMapping() - public AjaxResult add(@Validated @RequestBody BgtWageApplication bo) { - return toAjax(iBgtWageApplicationService.insert(bo) ? 1 : 0); + public AjaxResult add(@Validated @RequestBody BgtWageApplication bo) { + return AjaxResult.success(iBgtWageApplicationService.insert(bo)); } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectTaskProgressServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectTaskProgressServiceImpl.java index 42b289a..aa88c8d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectTaskProgressServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectTaskProgressServiceImpl.java @@ -21,7 +21,6 @@ import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.fbs.domain.FbsProjectTask; import com.ruoyi.fbs.service.IFbsProjectTaskService; -import com.ruoyi.zbf.service.IZbfProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -38,9 +37,6 @@ import java.util.Map; @Service public class BgtProjectTaskProgressServiceImpl extends ServicePlusImpl implements IBgtProjectTaskProgressService { - @Autowired - private IZbfProjectService zbfProjectService; - @Autowired private IFbsProjectTaskService fbsProjectTaskService; diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtWageApplicationServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtWageApplicationServiceImpl.java index 45b35d4..c3f88a5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtWageApplicationServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtWageApplicationServiceImpl.java @@ -5,27 +5,35 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.ruoyi.bgt.bo.BgtWageApplicationQueryBo; +import com.ruoyi.bgt.domain.BgtMessage; import com.ruoyi.bgt.domain.BgtWageApplication; import com.ruoyi.bgt.domain.dto.BgtWageApplicationQueryDTO; import com.ruoyi.bgt.domain.vo.BgtWageApplicationDetailVO; import com.ruoyi.bgt.domain.vo.BgtWageApplicationListVO; import com.ruoyi.bgt.domain.vo.BgtWageApplicationVO; import com.ruoyi.bgt.mapper.BgtWageApplicationMapper; -import com.ruoyi.bgt.service.IBgtUserService; +import com.ruoyi.bgt.service.IBgtMessageService; import com.ruoyi.bgt.service.IBgtWageApplicationService; import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.utils.PageUtils; +import com.ruoyi.fbs.domain.FbsProjectTask; import com.ruoyi.fbs.service.IFbsProjectTaskService; -import com.ruoyi.zbf.service.IZbfProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.Collection; +import java.util.HashMap; import java.util.List; import java.util.Map; +import static com.ruoyi.common.constants.BgtMessageConstant.*; +import static com.ruoyi.common.constants.WgzAndBgtMessageConstant.USERTYPE_BGT; +import static com.ruoyi.common.constants.WgzAndBgtMessageConstant.USERTYPE_SYSTEM; + /** * 包工头工资申请Service业务层处理 * @@ -35,14 +43,11 @@ import java.util.Map; @Service public class BgtWageApplicationServiceImpl extends ServicePlusImpl implements IBgtWageApplicationService { - @Autowired - private IZbfProjectService projectService; - @Autowired private IFbsProjectTaskService taskService; @Autowired - private IBgtUserService bgtUserService; + private IBgtMessageService bgtMessageService; @Override @@ -79,10 +84,29 @@ public class BgtWageApplicationServiceImpl extends ServicePlusImpl mp = new HashMap<>(); + mp.put("projectName", task.getTaskName()); + mp.put("amount", add.getApplicantAmount().toString()); + Map map = bgtMessage(mp, BGT_TYPE_SETTLEMENT, true); + BgtMessage bgtMessage = new BgtMessage() + .setSenderType(USERTYPE_SYSTEM) + .setRecipientType(USERTYPE_BGT) + .setRecipientId(add.getUserId()) + .setHeadline(map.get(HEADLINE)) + .setSubheading(map.get(SUBHEADING)) + .setTableId(task.getId()) + .setTableName(SqlHelper.table(FbsProjectTask.class).getTableName()) + .setMessageLargeType(BGT_LARGE_TASK); + bgtMessageService.sendAMessage(bgtMessage); + + return save; } @Override diff --git a/ruoyi-system/src/main/java/com/ruoyi/common/constants/BgtMessageConstant.java b/ruoyi-system/src/main/java/com/ruoyi/common/constants/BgtMessageConstant.java index af48231..5be6661 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/common/constants/BgtMessageConstant.java +++ b/ruoyi-system/src/main/java/com/ruoyi/common/constants/BgtMessageConstant.java @@ -8,51 +8,99 @@ public class BgtMessageConstant { public static final String BGT_LARGE_TASK = "1"; //大类型-任务 public static final String BGT_LARGE_SETTLEMENT = "2"; //大类型-结算 - public static final String BGT_LARGE_OTHER = "3"; //大类型-其它 + public static final String BGT_LARGE_OTHER = "3"; //大类型-其它 public static final String BGT_SMALL_SIGN_UP = "1"; //小类型-务工者报名 public static final String BGT_SMALL_PAY = "2"; //小类型-付款 public static final String BGT_SMALL_LEAVE = "3"; //小类型-请假 public static final String BGT_SMALL_MAKE_UP = "4"; //小类型-补卡 - public static final String BGT_SMALL_SYSTEM = "5"; //小类型-系统 /** - * ============================================包工头->务工者================================================== - * ============================================包工头->务工者================================================== - * ============================================包工头->务工者================================================== + * ============================================包工头->务工者 模板================================================== + * ============================================包工头->务工者 模板================================================== + * ============================================包工头->务工者 模板================================================== */ - //模板 + //招工审批 public static final String BGT_SIGN_UP_APPLY_HEADLINE = "您申请的【%s】项目,已得到回复!"; public static final String BGT_SIGN_UP_APPLY_SUBHEADING = "您申请的【%s】项目,审核人【%s】已%s!"; + //工资审批 public static final String BGT_PAY_APPLY_HEADLINE = "您【%s】项目工资申请已审批!"; public static final String BGT_PAY_APPLY_SUBHEADING = "您申请的【%s】项目工资,审核人【%s】已%s!"; + //请假审批 public static final String BGT_LEAVE_APPLY_HEADLINE = "您【%s】项目的请假申请已审批!"; public static final String BGT_LEAVE_APPLY_SUBHEADING = "您【%s】项目的请假申请,审核人【%s】已%s!"; + //补卡审批 public static final String BGT_LEAVE_MAKE_UP_HEADLINE = "您【%s】项目的补卡申请已审批!"; public static final String BGT_LEAVE_MAKE_UP_SUBHEADING = "您【%s】项目的补卡申请,审核人【%s】已%s!"; + //退场 public static final String BGT_LEAVE_EXIT_HEADLINE = "您已从【%s】项目退场!"; public static final String BGT_LEAVE_EXIT_SUBHEADING_ONE = "您已被【%s】指定从【%s】项目退场!"; public static final String BGT_LEAVE_EXIT_SUBHEADING_TWO = "【%s】项目已完结,自动退场!"; - - //主副标志 - public static final String HEADLINE = "headline"; //主标题 - public static final String SUBHEADING = "subheading"; //副标题 - - //消息类型 + //包工头->务工者 消息类型 public static final String BGT_TYPE_SIGN_UP = "1"; //务工者报名 public static final String BGT_TYPE_PAY = "2"; //付款 public static final String BGT_TYPE_LEAVE = "3"; //请假 public static final String BGT_TYPE_MAKE_UP = "4"; //补卡 public static final String BGT_TYPE_EXIT = "5"; //退场 + + /** + * ============================================系统->包工头 模板================================================== + * ============================================系统->包工头 模板================================================== + * ============================================系统->包工头 模板================================================== + */ + //承接任务 + public static final String BGT_TASK_APPLY_HEADLINE = "您已申请【%s】项目"; + public static final String BGT_TASK_APPLY_SUBHEADING = "您已成功申请到【%s】项目,请耐心等待回复!"; + //取消承接任务 + public static final String BGT_TASK_APPLY_CANCEL_HEADLINE = "您已申请取消【%s】项目!"; + public static final String BGT_TASK_APPLY_CANCEL_SUBHEADING = "您已成功取消【%s】项目"; + //工资结算 + public static final String BGT_SETTLEMENT_APPLY_HEADLINE = "您正在申请【%s】项目,总共【%s】元的工资结算操作!"; + public static final String BGT_SETTLEMENT_APPLY_SUBHEADING = "您已成功发起金额为【%s】元的工资结算操作,请耐心等待回复!"; + + + //系统->包工头 消息类型 + public static final String BGT_TYPE_TASK = "6"; //任务报名 + public static final String BGT_TYPE_TASK_CANCEL = "7"; //任务取消 + public static final String BGT_TYPE_SETTLEMENT = "8"; //结算 + + + /** + * ============================================包工头->分包商 模板================================================== + * ============================================包工头->分包商 模板================================================== + * ============================================包工头->分包商 模板================================================== + */ + //承接任务 + public static final String BGT_TO_FBG_APPLY_TASK_HEADLINE = "包工头【%s】正在向你申请承接【%s】任务!"; + public static final String BGT_TO_FBG_APPLY_TASK_SUBHEADING = "包工头【%s】正在向你申请承接【%s】任务,您可点击查看更多信息!"; + //工资结算 + public static final String BGT_TO_FBG_SETTLEMENT_APPLY_HEADLINE = "包工头【%s】正在向你发起工资结算!"; + public static final String BGT_TO_FBG_SETTLEMENT_APPLY_SUBHEADING = "包工头【%s】向你发起金额为【%s】元的工资结算操作!"; + + //包工头->分包商 消息类型 + public static final String BGT_TYPE_TASK_TO_FBG = "9"; //任务 + public static final String BGT_TYPE_SETTLEMEN_TO_FBGT = "10"; //结算 + + + /** + * ============================================调用方法================================================== + * ============================================调用方法================================================== + * ============================================调用方法================================================== + */ + //主副标志 + public static final String HEADLINE = "headline"; //主标题 + public static final String SUBHEADING = "subheading"; //副标题 + //包工头消息返回 public static Map bgtMessage(Map mp, String type, Boolean isPass) { Map map = new HashMap<>(); String pass = isPass ? "通过" : "拒绝"; String projectName = mp.get("projectName"); String auditor = mp.get("auditor"); + String amount = mp.get("amount"); switch (type) { case "1": map.put(HEADLINE, String.format(BGT_SIGN_UP_APPLY_HEADLINE, projectName)); @@ -78,6 +126,26 @@ public class BgtMessageConstant { map.put(SUBHEADING, String.format(BGT_LEAVE_EXIT_SUBHEADING_TWO, projectName)); } break; + case "6": + map.put(HEADLINE, String.format(BGT_TASK_APPLY_HEADLINE, projectName)); + map.put(SUBHEADING, String.format(BGT_TASK_APPLY_SUBHEADING, projectName)); + break; + case "7": + map.put(HEADLINE, String.format(BGT_TASK_APPLY_CANCEL_HEADLINE, projectName)); + map.put(SUBHEADING, String.format(BGT_TASK_APPLY_CANCEL_SUBHEADING, projectName)); + break; + case "8": + map.put(HEADLINE, String.format(BGT_SETTLEMENT_APPLY_HEADLINE, projectName, amount)); + map.put(SUBHEADING, String.format(BGT_SETTLEMENT_APPLY_SUBHEADING, amount)); + break; + case "9": + map.put(HEADLINE, String.format(BGT_TO_FBG_APPLY_TASK_HEADLINE, auditor, projectName)); + map.put(SUBHEADING, String.format(BGT_TO_FBG_APPLY_TASK_SUBHEADING, auditor, projectName)); + break; + case "10": + map.put(HEADLINE, String.format(BGT_TO_FBG_SETTLEMENT_APPLY_HEADLINE, auditor)); + map.put(SUBHEADING, String.format(BGT_TO_FBG_SETTLEMENT_APPLY_SUBHEADING, auditor, amount)); + break; default: break; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/AppTaskVO.java b/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/AppTaskVO.java index 1973ab6..805a45c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/AppTaskVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/fbs/domain/vo/AppTaskVO.java @@ -36,6 +36,9 @@ public class AppTaskVO { /** 任务地址 */ @ApiModelProperty("任务地址") private String taskAddress; + + @ApiModelProperty("任务描述") + private String taskDescribe; /** 任务金额 */ @ApiModelProperty("任务金额") private Integer taskAmount; diff --git a/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsProjectTaskApplyServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsProjectTaskApplyServiceImpl.java index 1b9e7ae..c4af682 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsProjectTaskApplyServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsProjectTaskApplyServiceImpl.java @@ -5,22 +5,35 @@ import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; +import com.ruoyi.bgt.domain.BgtMessage; +import com.ruoyi.bgt.service.IBgtMessageService; import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.exception.BaseException; import com.ruoyi.common.utils.PageUtils; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.fbs.bo.FbsProjectTaskApplyQueryBo; +import com.ruoyi.fbs.domain.FbsProjectTask; import com.ruoyi.fbs.domain.FbsProjectTaskApply; import com.ruoyi.fbs.domain.dto.TaskApplyDTO; import com.ruoyi.fbs.mapper.FbsProjectTaskApplyMapper; import com.ruoyi.fbs.service.IFbsProjectTaskApplyService; +import com.ruoyi.fbs.service.IFbsProjectTaskService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.Collection; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import static com.ruoyi.common.constants.BgtMessageConstant.*; +import static com.ruoyi.common.constants.WgzAndBgtMessageConstant.USERTYPE_BGT; +import static com.ruoyi.common.constants.WgzAndBgtMessageConstant.USERTYPE_SYSTEM; + /** * 分包商项目任务申请Service业务层处理 * @@ -30,6 +43,11 @@ import java.util.stream.Collectors; @Service public class FbsProjectTaskApplyServiceImpl extends ServicePlusImpl implements IFbsProjectTaskApplyService { + @Autowired + private IBgtMessageService bgtMessageService; + @Autowired + private IFbsProjectTaskService taskService; + @Override public FbsProjectTaskApply queryById(Long id){ return getById(id); @@ -92,9 +110,27 @@ public class FbsProjectTaskApplyServiceImpl extends ServicePlusImpl mp = new HashMap<>(); + mp.put("projectName", task.getTaskName()); + mp.put("auditor", SecurityUtils.getUsername()); + Map map = bgtMessage(mp, BGT_TYPE_TASK, true); + BgtMessage bgtMessage = new BgtMessage() + .setSenderType(USERTYPE_SYSTEM) + .setRecipientType(USERTYPE_BGT) + .setRecipientId(dto.getUserId()) + .setHeadline(map.get(HEADLINE)) + .setSubheading(map.get(SUBHEADING)) + .setTableId(task.getId()) + .setTableName(SqlHelper.table(FbsProjectTask.class).getTableName()) + .setMessageLargeType(BGT_LARGE_TASK); + bgtMessageService.sendAMessage(bgtMessage); return save(fbsProjectTaskApply); } @@ -108,6 +144,22 @@ public class FbsProjectTaskApplyServiceImpl extends ServicePlusImpllambdaQuery().eq(FbsProjectTaskApply::getTaskId, dto.getTaskId()) .eq(FbsProjectTaskApply::getUserId, dto.getUserId())); + //发消息 + FbsProjectTask task = taskService.getById(dto.getTaskId()); + HashMap mp = new HashMap<>(); + mp.put("projectName", task.getTaskName()); + mp.put("auditor", SecurityUtils.getUsername()); + Map map = bgtMessage(mp, BGT_TYPE_TASK_CANCEL, true); + BgtMessage bgtMessage = new BgtMessage() + .setSenderType(USERTYPE_SYSTEM) + .setRecipientType(USERTYPE_BGT) + .setRecipientId(dto.getUserId()) + .setHeadline(map.get(HEADLINE)) + .setSubheading(map.get(SUBHEADING)) + .setTableId(task.getId()) + .setTableName(SqlHelper.table(FbsProjectTask.class).getTableName()) + .setMessageLargeType(BGT_LARGE_TASK); + bgtMessageService.sendAMessage(bgtMessage); return delete>0; } }