diff --git a/ruoyi-system/src/main/java/com/ruoyi/common/constants/WgzAndBgtMessageConstant.java b/ruoyi-system/src/main/java/com/ruoyi/common/constants/WgzAndBgtMessageConstant.java index 0607f90..8144946 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/common/constants/WgzAndBgtMessageConstant.java +++ b/ruoyi-system/src/main/java/com/ruoyi/common/constants/WgzAndBgtMessageConstant.java @@ -19,10 +19,11 @@ public class WgzAndBgtMessageConstant { public static final String LARGE_APPLY = "0"; //大类型-报名 public static final String LARGE_SALARY = "1"; //大类型-工资 public static final String LARGE_OTHER = "2"; //大类型-其它 - public static final String SMALL_CARD = "0"; //小类型-补卡 + public static final String SMALL_CARD = "0"; //小类型-考勤补卡 public static final String SMALL_SYSTEM = "1"; //小类型-系统 public static final String SMALL_EXIT = "2"; //小类型-退场 public static final String SMALL_LEAVE = "3"; //小类型-请假 + public static final String SMALL_DAILY = "4"; //小类型-日报补卡 /** @@ -61,6 +62,9 @@ public class WgzAndBgtMessageConstant { //【请假超时】17-18 public static final String WGZ_SYSTEM_HEADLINE_TIMEOUT = "您【%s】的请假审批已超时未审核!"; public static final String WGZ_SYSTEM_SUBHEADING_TIMEOUT = "您在【%s】的请假审批流程未走完,现已超时取消,请注意核对!"; + //【日报补卡】19-20 + public static final String WGZ_SYSTEM_HEADLINE_DAILY = "您成功发送【%s】日的日报补卡!"; + public static final String WGZ_SYSTEM_SUBHEADING_DAILY = "您在【%s】日的日报补卡已成功发起!"; /** * 务工者给包工头提示 */ @@ -79,6 +83,9 @@ public class WgzAndBgtMessageConstant { //【工资结算】9-10 public static final String WGZ_HEADLINE_PAYCALCULATION = "务工者【%s】正在向你发起工资结算!"; public static final String WGZ__SUBHEADING_PAYCALCULATION = "务工者【%s】向你发起为期【%s】天,金额为【%s】圆整的工资结算操作!"; + //【日报补卡】11-12 + public static final String WGZ_HEADLINE_DAILY = "务工者【%s】正在向你发起【%s】日的日报补卡!"; + public static final String WGZ__SUBHEADING_DAILY = "务工者【%s】向你发起【%s】日的日报补卡,请注意查收处理!"; //务工者消息返回 public static String wgzMessage(Map mp, String type) { @@ -125,6 +132,10 @@ public class WgzAndBgtMessageConstant { return String.format(WGZ_SYSTEM_HEADLINE_TIMEOUT,mp.get("data")); case "118": return String.format(WGZ_SYSTEM_SUBHEADING_TIMEOUT, mp.get("data")); + case "119": + return String.format(WGZ_SYSTEM_HEADLINE_DAILY,mp.get("data")); + case "120": + return String.format(WGZ_SYSTEM_SUBHEADING_DAILY, mp.get("data")); //务工者向包工头申请报名 case "201": return String.format(WGZ_HEADLINE_APPLY, mp.get("userName"), mp.get("post")); @@ -150,6 +161,11 @@ public class WgzAndBgtMessageConstant { return String.format(WGZ_HEADLINE_PAYCALCULATION, mp.get("userName")); case "210": return String.format(WGZ__SUBHEADING_PAYCALCULATION, mp.get("userName"),mp.get("num"),mp.get("money")); + //务工者向包工头发起日报补卡 + case "211": + return String.format(WGZ_HEADLINE_DAILY, mp.get("userName"),mp.get("data")); + case "212": + return String.format(WGZ__SUBHEADING_DAILY, mp.get("userName"),mp.get("data")); default: return "未知类型"; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/bo/req/WgzAppDailyClockReq.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/bo/req/WgzAppDailyClockReq.java index 856ed19..74acda5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/bo/req/WgzAppDailyClockReq.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/bo/req/WgzAppDailyClockReq.java @@ -19,6 +19,8 @@ import java.time.LocalDateTime; @Accessors(chain = true) @ApiModel("日报打卡请求对象") public class WgzAppDailyClockReq implements Serializable { + @ApiModelProperty("日报状态(0正常 1补卡)") + private String status; @ApiModelProperty("今日完成工作") private String finishToday; diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzDailyClock.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzDailyClock.java index 90f23bb..f68fe8b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzDailyClock.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzDailyClock.java @@ -106,6 +106,11 @@ public class WgzDailyClock implements Serializable { @ApiModelProperty("未审核|审核时间") private LocalDateTime auditorTime; + /** 日报状态(0正常 1补卡) */ + @Excel(name = "日报状态(0正常 1补卡)" , readConverterExp = "0=正常,1=补卡") + @ApiModelProperty("日报状态(0正常 1补卡)") + private String status; + /** 删除标志(0代表存在 2代表删除) */ @Excel(name = "删除标志" , readConverterExp = "0=代表存在,2=代表删除") @ApiModelProperty("删除标志(0代表存在 2代表删除)") diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzDailyClockServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzDailyClockServiceImpl.java index a69b42f..8117926 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzDailyClockServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzDailyClockServiceImpl.java @@ -6,15 +6,19 @@ 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.baomidou.mybatisplus.extension.toolkit.SqlHelper; +import com.ruoyi.bgt.domain.BgtMessage; import com.ruoyi.bgt.domain.BgtProjectRecruit; import com.ruoyi.bgt.domain.BgtProjectRecruitApply; import com.ruoyi.bgt.domain.dto.BgtDailyClockListDTO; import com.ruoyi.bgt.domain.dto.BgtDailyClockUpdateDTO; import com.ruoyi.bgt.domain.vo.BgtDailyClockDetailVO; import com.ruoyi.bgt.domain.vo.BgtDailyClockListVO; +import com.ruoyi.bgt.service.IBgtMessageService; import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService; import com.ruoyi.bgt.service.IBgtProjectRecruitService; import com.ruoyi.bgt.service.IBgtUserService; +import com.ruoyi.common.constants.WgzAndBgtMessageConstant; import com.ruoyi.common.core.domain.entity.BgtUser; import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; import com.ruoyi.common.core.page.TableDataInfo; @@ -29,18 +33,29 @@ import com.ruoyi.wgz.bo.res.WgzAppUserDailyRecordRes; import com.ruoyi.wgz.bo.res.WgzUserDailyCalendarRes; import com.ruoyi.wgz.bo.rests.WgzAppAttachmentAcquisitionTwo; import com.ruoyi.wgz.domain.WgzDailyClock; +import com.ruoyi.wgz.domain.WgzMessage; +import com.ruoyi.wgz.domain.WgzReissueacard; +import com.ruoyi.wgz.domain.WgzUser; import com.ruoyi.wgz.mapper.WgzDailyClockMapper; import com.ruoyi.wgz.service.IWgzDailyClockService; import com.ruoyi.wgz.service.IWgzLeaveService; +import com.ruoyi.wgz.service.IWgzMessageService; +import com.ruoyi.wgz.service.IWgzUserService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.temporal.TemporalAdjusters; import java.util.*; +import static com.ruoyi.common.constants.BgtMessageConstant.BGT_SMALL_MAKE_UP; +import static com.ruoyi.common.constants.BgtMessageConstant.BGT_TYPE_SIGN_UP; +import static com.ruoyi.common.constants.WgzAndBgtMessageConstant.*; +import static com.ruoyi.common.constants.WgzAndBgtMessageConstant.USERTYPE_BGT; + /** * 日报打卡Service业务层处理 * @@ -67,6 +82,15 @@ public class WgzDailyClockServiceImpl extends ServicePlusImpl 0; + int insert = baseMapper.insert(dc); + //2、插入成功,且状态为1,那么就需要发送消息给【补日报】的人和上级【招工】 + if ( insert > 0 && req.getStatus().equals("1")){ + WgzUser byId = wgzUserService.findByUserId(appUserId); + Map mp = new HashMap<>(); + mp.put("data",String.valueOf(LocalDate.now())); + WgzMessage wgzMessage = new WgzMessage(). + setSenderType(USERTYPE_SYSTEM). + setRecipientType(USERTYPE_WGZ). + setRecipientId(appUserId). + setHeadline(WgzAndBgtMessageConstant.wgzMessage(mp,"119")). + setSubheading(WgzAndBgtMessageConstant.wgzMessage(mp,"120")). + setTableId(dc.getId()). + setTableName(SqlHelper.table(WgzDailyClock.class).getTableName()). + setMessageLargeType(LARGE_OTHER). + setMessageSmallType(SMALL_DAILY); + if (!iWgzMessageService.sendAMessage(wgzMessage)){ + throw new RuntimeException("系统日报补卡消息发送失败!"); + } + BgtMessage bgtMessage = new BgtMessage(). + setSenderType(USERTYPE_WGZ). + setSenderId(appUserId). + setRecipientType(USERTYPE_BGT). + setRecipientId(appById.getUserId()). + setHeadline(WgzAndBgtMessageConstant.wgzMessage(mp,"211")). + setSubheading(WgzAndBgtMessageConstant.wgzMessage(mp,"212")). + setTableId(dc.getId()). + setTableName(SqlHelper.table(WgzDailyClock.class).getTableName()). + setMessageLargeType(BGT_TYPE_SIGN_UP). + setMessageSmallType(BGT_SMALL_MAKE_UP); + if (!iBgtMessageService.sendAMessage(bgtMessage)){ + throw new RuntimeException("发送日报补卡消息失败!"); + } + return true; + }else{ + return false; + } } @Override diff --git a/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitMapper.xml b/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitMapper.xml index 27e58b0..34a250e 100644 --- a/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitMapper.xml @@ -98,7 +98,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bgt_project_recruit as b LEFT JOIN fbs_project_task as c ON (c.id = b.task_id) WHERE - b.recruit_end_time <= DATE_FORMAT(now(),'%Y-%m-%d') AND + DATE_FORMAT(NOW(), '%Y-%m-%d') BETWEEN b.recruit_begin_time AND b.recruit_end_time and b.id not in (SELECT recruit_id FROM bgt_project_recruit_apply WHERE user_id = #{req.userId})and b.del_flag = 0 order by b.create_time desc