消息发送完成
This commit is contained in:
@ -240,7 +240,6 @@ public class WgzAppController {
|
|||||||
return AjaxResult.success(iWgzDailyClockService.userDailyClock(req));
|
return AjaxResult.success(iWgzDailyClockService.userDailyClock(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 【日报】日报日历·日报记录
|
* 【日报】日报日历·日报记录
|
||||||
*/
|
*/
|
||||||
@ -462,7 +461,6 @@ public class WgzAppController {
|
|||||||
return AjaxResult.success(iWgzMessageService.userMessageTypeStatistics(appUserId));
|
return AjaxResult.success(iWgzMessageService.userMessageTypeStatistics(appUserId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 【消息】获取消息列表-0全部 1报名 2工资 3其他 (打卡、系统)
|
* 【消息】获取消息列表-0全部 1报名 2工资 3其他 (打卡、系统)
|
||||||
*/
|
*/
|
||||||
@ -488,8 +486,8 @@ public class WgzAppController {
|
|||||||
*/
|
*/
|
||||||
@ApiOperation("【消息】【报名消息】 报名消息·确认|拒绝报名")
|
@ApiOperation("【消息】【报名消息】 报名消息·确认|拒绝报名")
|
||||||
//@PreAuthorize("@ss.hasPermi('wgzApp:user:userConfirmRegistration')")
|
//@PreAuthorize("@ss.hasPermi('wgzApp:user:userConfirmRegistration')")
|
||||||
@GetMapping("/WgzAppUserConfirmRegistration")
|
@PutMapping("/WgzAppUserConfirmRegistration")
|
||||||
public AjaxResult<Boolean> userConfirmRegistration(@Validated WgzAppConfirmRegistrationReq req) {
|
public AjaxResult<Boolean> userConfirmRegistration(@Validated @RequestBody WgzAppConfirmRegistrationReq req) {
|
||||||
return AjaxResult.success(iBgtProjectRecruitApplyService.userConfirmRegistration(req));
|
return AjaxResult.success(iBgtProjectRecruitApplyService.userConfirmRegistration(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -511,7 +509,7 @@ public class WgzAppController {
|
|||||||
* 【我的】【签协议】协议列表
|
* 【我的】【签协议】协议列表
|
||||||
1-劳动合同
|
1-劳动合同
|
||||||
*/
|
*/
|
||||||
@ApiOperation("通用·附件获取(仅限和务工者直接关联的)")
|
@ApiOperation("【通用】附件获取(仅限和务工者直接关联的)")
|
||||||
//@PreAuthorize("@ss.hasPermi('wgzApp:user:userAttachmentAcquisition')")
|
//@PreAuthorize("@ss.hasPermi('wgzApp:user:userAttachmentAcquisition')")
|
||||||
@GetMapping("/wgzUserAttachmentAcquisition")
|
@GetMapping("/wgzUserAttachmentAcquisition")
|
||||||
public AjaxResult<WgzAppAttachmentAcquisitionRes> userAttachmentAcquisition(@Validated WgzAppAttachmentAcquisitionReq req) {
|
public AjaxResult<WgzAppAttachmentAcquisitionRes> userAttachmentAcquisition(@Validated WgzAppAttachmentAcquisitionReq req) {
|
||||||
@ -559,7 +557,7 @@ public class WgzAppController {
|
|||||||
* 【我的】【请假】 获取上下班时间
|
* 【我的】【请假】 获取上下班时间
|
||||||
* 【考勤打卡】【打卡】 获取上下班时间
|
* 【考勤打卡】【打卡】 获取上下班时间
|
||||||
*/
|
*/
|
||||||
@ApiOperation("通用·获取上下班时间")
|
@ApiOperation("【通用】获取上下班时间")
|
||||||
//@PreAuthorize("@ss.hasPermi('wgzApp:user:userGetCommutingTime')")
|
//@PreAuthorize("@ss.hasPermi('wgzApp:user:userGetCommutingTime')")
|
||||||
@GetMapping("/WgzAppUserGetCommutingTime")//PageReq
|
@GetMapping("/WgzAppUserGetCommutingTime")//PageReq
|
||||||
public AjaxResult<Map<String, LocalTime>> userGetCommutingTime() {
|
public AjaxResult<Map<String, LocalTime>> userGetCommutingTime() {
|
||||||
@ -575,6 +573,16 @@ public class WgzAppController {
|
|||||||
return AjaxResult.success(mp);
|
return AjaxResult.success(mp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 【消息】
|
||||||
|
*/
|
||||||
|
@ApiOperation("【通用】修改已读未读状态")
|
||||||
|
//@PreAuthorize("@ss.hasPermi('wgzApp:user:userReadUnread')")
|
||||||
|
@PutMapping("/WgzAppUserReadUnread")
|
||||||
|
public AjaxResult<Boolean> userReadUnread(@Validated @RequestBody WgzAppReadUnreadReq req) {
|
||||||
|
return AjaxResult.success(iWgzMessageService.userReadUnread(req));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -39,7 +39,7 @@ public interface BgtProjectRecruitMapper extends BaseMapperPlus<BgtProjectRecrui
|
|||||||
List<WgzAppCancelRegistrationProjectDetailsTwo> GetsTheMembersUnderTheCurrentProject (@Param("recruitId") Long recruitId);
|
List<WgzAppCancelRegistrationProjectDetailsTwo> GetsTheMembersUnderTheCurrentProject (@Param("recruitId") Long recruitId);
|
||||||
|
|
||||||
|
|
||||||
TableDataInfo<WgzAppJobListingRes> userJobListing(@Param("page") Page<WgzAppJobListingReq> page);
|
Page<WgzAppJobListingRes> userJobListing(@Param("page") Page<WgzAppJobListingReq> page);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@ import com.ruoyi.bgt.service.IBgtMessageService;
|
|||||||
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
|
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
|
||||||
import com.ruoyi.bgt.service.IBgtProjectRecruitService;
|
import com.ruoyi.bgt.service.IBgtProjectRecruitService;
|
||||||
import com.ruoyi.common.constants.WgzAndBgtMessageConstant;
|
import com.ruoyi.common.constants.WgzAndBgtMessageConstant;
|
||||||
|
import com.ruoyi.common.core.domain.entity.SysDictData;
|
||||||
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
|
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.common.enums.RecruitApplyStatus;
|
import com.ruoyi.common.enums.RecruitApplyStatus;
|
||||||
@ -24,6 +25,7 @@ import com.ruoyi.common.exception.BaseException;
|
|||||||
import com.ruoyi.common.service.IAnnexService;
|
import com.ruoyi.common.service.IAnnexService;
|
||||||
import com.ruoyi.common.utils.PageUtils;
|
import com.ruoyi.common.utils.PageUtils;
|
||||||
import com.ruoyi.common.utils.SecurityUtils;
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
|
import com.ruoyi.system.service.ISysDictTypeService;
|
||||||
import com.ruoyi.wgz.bo.req.WgzAppConfirmRegistrationReq;
|
import com.ruoyi.wgz.bo.req.WgzAppConfirmRegistrationReq;
|
||||||
import com.ruoyi.wgz.bo.req.WgzAppUnderwayReq;
|
import com.ruoyi.wgz.bo.req.WgzAppUnderwayReq;
|
||||||
import com.ruoyi.wgz.bo.res.WgzAppUnderwayRes;
|
import com.ruoyi.wgz.bo.res.WgzAppUnderwayRes;
|
||||||
@ -66,6 +68,8 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
|
|||||||
private IWgzMessageService iWgzMessageService;
|
private IWgzMessageService iWgzMessageService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBgtMessageService iBgtMessageService;
|
private IBgtMessageService iBgtMessageService;
|
||||||
|
@Autowired
|
||||||
|
private ISysDictTypeService dictTypeService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BgtProjectRecruitApply queryById(Long id){
|
public BgtProjectRecruitApply queryById(Long id){
|
||||||
@ -176,12 +180,12 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
|
|||||||
lqw.eq(BgtProjectRecruitApply::getUserId, id).
|
lqw.eq(BgtProjectRecruitApply::getUserId, id).
|
||||||
in(BgtProjectRecruitApply::getStatus, strings); //包工头+务工者同意 or 进场 才算进场ok
|
in(BgtProjectRecruitApply::getStatus, strings); //包工头+务工者同意 or 进场 才算进场ok
|
||||||
List<BgtProjectRecruitApply> bgtProjectRecruitApplies = baseMapper.selectList(lqw);
|
List<BgtProjectRecruitApply> bgtProjectRecruitApplies = baseMapper.selectList(lqw);
|
||||||
|
if (bgtProjectRecruitApplies.isEmpty()){
|
||||||
|
throw new RuntimeException("异常,还未查询到您进入了工地!");
|
||||||
|
}
|
||||||
if (bgtProjectRecruitApplies.size()>1){
|
if (bgtProjectRecruitApplies.size()>1){
|
||||||
throw new RuntimeException("异常,查询到用户同时在多个工地务工!");
|
throw new RuntimeException("异常,查询到用户同时在多个工地务工!");
|
||||||
}
|
}
|
||||||
if (bgtProjectRecruitApplies.isEmpty()){
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return bgtProjectRecruitApplies.get(0);
|
return bgtProjectRecruitApplies.get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -221,15 +225,18 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
|
|||||||
int insert = baseMapper.insert(bgtProjectRecruitApply);
|
int insert = baseMapper.insert(bgtProjectRecruitApply);
|
||||||
//4、发送消息
|
//4、发送消息
|
||||||
if (insert>0){
|
if (insert>0){
|
||||||
|
SysDictData typeOfWork = dictTypeService.selectDictDataByTypeAndData("type_of_work", byId.getTypeOfWork());
|
||||||
Map<String, String> mp = new HashMap<>();
|
Map<String, String> mp = new HashMap<>();
|
||||||
mp.put("projectName",appById.getRecruitName());
|
mp.put("projectName",appById.getRecruitName());
|
||||||
|
mp.put("userName",byId.getUsername());
|
||||||
|
mp.put("post",typeOfWork.getDictLabel());
|
||||||
//4-1、系统发送消息给当前用户
|
//4-1、系统发送消息给当前用户
|
||||||
WgzMessage wgzMessage = new WgzMessage().
|
WgzMessage wgzMessage = new WgzMessage().
|
||||||
setSenderType(USERTYPE_SYSTEM).
|
setSenderType(USERTYPE_SYSTEM).
|
||||||
setRecipientType(USERTYPE_WGZ).
|
setRecipientType(USERTYPE_WGZ).
|
||||||
setRecipientId(appUserId).
|
setRecipientId(appUserId).
|
||||||
setHeadline(WgzAndBgtMessageConstant.wgzMessage(mp,"1")).
|
setHeadline(WgzAndBgtMessageConstant.wgzMessage(mp,"101")).
|
||||||
setSubheading(WgzAndBgtMessageConstant.wgzMessage(mp,"2")).
|
setSubheading(WgzAndBgtMessageConstant.wgzMessage(mp,"102")).
|
||||||
setTableId(bgtProjectRecruitApply.getId()).
|
setTableId(bgtProjectRecruitApply.getId()).
|
||||||
setTableName(SqlHelper.table(BgtProjectRecruitApply.class).getTableName()).
|
setTableName(SqlHelper.table(BgtProjectRecruitApply.class).getTableName()).
|
||||||
setMessageLargeType(LARGE_OTHER).
|
setMessageLargeType(LARGE_OTHER).
|
||||||
@ -243,11 +250,12 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
|
|||||||
setSenderId(appUserId).
|
setSenderId(appUserId).
|
||||||
setRecipientType(USERTYPE_BGT).
|
setRecipientType(USERTYPE_BGT).
|
||||||
setRecipientId(appById.getUserId()).
|
setRecipientId(appById.getUserId()).
|
||||||
setHeadline(WgzAndBgtMessageConstant.wgzMessage(mp,"3")).
|
setHeadline(WgzAndBgtMessageConstant.wgzMessage(mp,"201")).
|
||||||
setSubheading(WgzAndBgtMessageConstant.wgzMessage(mp,"4")).
|
setSubheading(WgzAndBgtMessageConstant.wgzMessage(mp,"202")).
|
||||||
setTableId(bgtProjectRecruitApply.getId()).
|
setTableId(bgtProjectRecruitApply.getId()).
|
||||||
setTableName(SqlHelper.table(BgtProjectRecruitApply.class).getTableName()).
|
setTableName(SqlHelper.table(BgtProjectRecruitApply.class).getTableName()).
|
||||||
setMessageLargeType(LARGE_APPLY);
|
setMessageLargeType(BGT_LARGE).
|
||||||
|
setMessageSmallType(BGT_TYPE_SIGN_UP);
|
||||||
if (!iBgtMessageService.sendAMessage(bgtMessage)){
|
if (!iBgtMessageService.sendAMessage(bgtMessage)){
|
||||||
throw new RuntimeException("发送消息失败!");
|
throw new RuntimeException("发送消息失败!");
|
||||||
}
|
}
|
||||||
@ -304,8 +312,8 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
|
|||||||
setSenderType(USERTYPE_SYSTEM).
|
setSenderType(USERTYPE_SYSTEM).
|
||||||
setRecipientType(USERTYPE_WGZ).
|
setRecipientType(USERTYPE_WGZ).
|
||||||
setRecipientId(appUserId).
|
setRecipientId(appUserId).
|
||||||
setHeadline(WgzAndBgtMessageConstant.wgzMessage(mp,"1")).
|
setHeadline(WgzAndBgtMessageConstant.wgzMessage(mp,"103")).
|
||||||
setSubheading(WgzAndBgtMessageConstant.wgzMessage(mp,"2")).
|
setSubheading(WgzAndBgtMessageConstant.wgzMessage(mp,"104")).
|
||||||
setTableId(bgtProjectRecruitApply.getId()).
|
setTableId(bgtProjectRecruitApply.getId()).
|
||||||
setTableName(SqlHelper.table(BgtProjectRecruitApply.class).getTableName()).
|
setTableName(SqlHelper.table(BgtProjectRecruitApply.class).getTableName()).
|
||||||
setMessageLargeType(LARGE_OTHER).
|
setMessageLargeType(LARGE_OTHER).
|
||||||
@ -330,9 +338,85 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean userConfirmRegistration(WgzAppConfirmRegistrationReq req) {
|
public Boolean userConfirmRegistration(WgzAppConfirmRegistrationReq req) {
|
||||||
BgtProjectRecruitApply apply = new BgtProjectRecruitApply().setId(req.getRecruitApplyId()).setStatus(req.getStatus());
|
//1、获取当前用户
|
||||||
//发送取消或拒绝的消息给包工头、系统
|
WgzUser byUserId = wgzUserService.findByUserId(SecurityUtils.getAppUserId());
|
||||||
return this.updateById(apply);
|
//2、当前申请报名的工地信息
|
||||||
|
BgtProjectRecruitApply recruitApply = iBgtProjectRecruitApplyService.queryById(req.getRecruitApplyId());
|
||||||
|
BgtProjectRecruit recruit = iBgtProjectRecruitService.getAppById(recruitApply.getId());
|
||||||
|
//3、更新报名状态
|
||||||
|
BgtProjectRecruitApply apply = new BgtProjectRecruitApply();
|
||||||
|
apply.setId(req.getRecruitApplyId());
|
||||||
|
apply.setStatus(req.getStatus());
|
||||||
|
int insert = baseMapper.insert(apply);
|
||||||
|
if (insert == 0){
|
||||||
|
throw new RuntimeException("插入数据失败!");
|
||||||
|
}
|
||||||
|
//4系统拒绝消息
|
||||||
|
SysDictData typeOfWork = dictTypeService.selectDictDataByTypeAndData("type_of_work", recruit.getTypeOfWork());
|
||||||
|
Map<String, String> mp = new HashMap<>();
|
||||||
|
mp.put("projectName",recruit.getRecruitName());
|
||||||
|
mp.put("userName",byUserId.getUsername());
|
||||||
|
mp.put("post",typeOfWork.getDictLabel());
|
||||||
|
if (req.getStatus().equals("3")){
|
||||||
|
WgzMessage wgzMessage = new WgzMessage().
|
||||||
|
setSenderType(USERTYPE_SYSTEM).
|
||||||
|
setRecipientType(USERTYPE_WGZ).
|
||||||
|
setRecipientId(byUserId.getUserId()).
|
||||||
|
setHeadline(WgzAndBgtMessageConstant.wgzMessage(mp,"105")).
|
||||||
|
setSubheading(WgzAndBgtMessageConstant.wgzMessage(mp,"106")).
|
||||||
|
setTableId(apply.getId()).
|
||||||
|
setTableName(SqlHelper.table(BgtProjectRecruitApply.class).getTableName()).
|
||||||
|
setMessageLargeType(LARGE_APPLY);
|
||||||
|
if (!iWgzMessageService.sendAMessage(wgzMessage)){
|
||||||
|
throw new RuntimeException("系统消息报名拒绝发送失败!");
|
||||||
|
}
|
||||||
|
BgtMessage bgtMessage = new BgtMessage().
|
||||||
|
setSenderType(USERTYPE_WGZ).
|
||||||
|
setSenderId(byUserId.getUserId()).
|
||||||
|
setRecipientType(USERTYPE_BGT).
|
||||||
|
setRecipientId(apply.getUserId()).
|
||||||
|
setHeadline(WgzAndBgtMessageConstant.wgzMessage(mp,"203")).
|
||||||
|
setSubheading(WgzAndBgtMessageConstant.wgzMessage(mp,"204")).
|
||||||
|
setTableId(apply.getId()).
|
||||||
|
setTableName(SqlHelper.table(BgtProjectRecruitApply.class).getTableName()).
|
||||||
|
setMessageLargeType(BGT_LARGE).
|
||||||
|
setMessageSmallType(BGT_TYPE_SIGN_UP);
|
||||||
|
if (!iBgtMessageService.sendAMessage(bgtMessage)){
|
||||||
|
throw new RuntimeException("发送报名拒绝消息失败!");
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
//系统同意消息
|
||||||
|
if (req.getStatus().equals("4")){
|
||||||
|
WgzMessage wgzMessage = new WgzMessage().
|
||||||
|
setSenderType(USERTYPE_SYSTEM).
|
||||||
|
setRecipientType(USERTYPE_WGZ).
|
||||||
|
setRecipientId(byUserId.getUserId()).
|
||||||
|
setHeadline(WgzAndBgtMessageConstant.wgzMessage(mp,"107")).
|
||||||
|
setSubheading(WgzAndBgtMessageConstant.wgzMessage(mp,"108")).
|
||||||
|
setTableId(apply.getId()).
|
||||||
|
setTableName(SqlHelper.table(BgtProjectRecruitApply.class).getTableName()).
|
||||||
|
setMessageLargeType(LARGE_APPLY);
|
||||||
|
if (!iWgzMessageService.sendAMessage(wgzMessage)){
|
||||||
|
throw new RuntimeException("系统消息报名同意发送失败!");
|
||||||
|
}
|
||||||
|
BgtMessage bgtMessage = new BgtMessage().
|
||||||
|
setSenderType(USERTYPE_WGZ).
|
||||||
|
setSenderId(byUserId.getUserId()).
|
||||||
|
setRecipientType(USERTYPE_BGT).
|
||||||
|
setRecipientId(apply.getUserId()).
|
||||||
|
setHeadline(WgzAndBgtMessageConstant.wgzMessage(mp,"205")).
|
||||||
|
setSubheading(WgzAndBgtMessageConstant.wgzMessage(mp,"206")).
|
||||||
|
setTableId(apply.getId()).
|
||||||
|
setTableName(SqlHelper.table(BgtProjectRecruitApply.class).getTableName()).
|
||||||
|
setMessageLargeType(BGT_LARGE).
|
||||||
|
setMessageSmallType(BGT_TYPE_SIGN_UP);
|
||||||
|
if (!iBgtMessageService.sendAMessage(bgtMessage)){
|
||||||
|
throw new RuntimeException("发送报名同意消息失败!");
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -194,7 +194,7 @@ public class BgtProjectRecruitServiceImpl extends ServicePlusImpl<BgtProjectRecr
|
|||||||
Page<WgzAppJobListingReq> pe = new Page<>();
|
Page<WgzAppJobListingReq> pe = new Page<>();
|
||||||
pe.setCurrent(req.getPageNum());
|
pe.setCurrent(req.getPageNum());
|
||||||
pe.setSize(req.getPageSize());
|
pe.setSize(req.getPageSize());
|
||||||
return baseMapper.userJobListing(pe);
|
return PageUtils.buildDataInfo(baseMapper.userJobListing(pe));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -22,38 +22,111 @@ public class WgzAndBgtMessageConstant {
|
|||||||
* =====================================================务工者=====================================================
|
* =====================================================务工者=====================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//【报名】系统给务工者提示
|
/**
|
||||||
|
* 系统给务工者提示
|
||||||
|
*/
|
||||||
|
//【报名申请】1-2
|
||||||
public static final String WGZ_SYSTEM_HEADLINE_APPLY = "您已申请【%s】项目!";
|
public static final String WGZ_SYSTEM_HEADLINE_APPLY = "您已申请【%s】项目!";
|
||||||
public static final String WGZ_SYSTEM_SUBHEADING_APPLY = "您已成功申请到【%s】项目,请耐心等待回复!";
|
public static final String WGZ_SYSTEM_SUBHEADING_APPLY = "您已成功申请到【%s】项目,请耐心等待回复!";
|
||||||
|
//【取消报名】3-4
|
||||||
public static final String WGZ_SYSTEM_HEADLINE_APPLY_CANCEL = "您已申请取消【%s】项目!";
|
public static final String WGZ_SYSTEM_HEADLINE_APPLY_CANCEL = "您已申请取消【%s】项目!";
|
||||||
public static final String WGZ_SYSTEM_SUBHEADING_APPLY_CANCEL = "您已成功取消【%s】项目,祝您早日找到心仪的工作!";
|
public static final String WGZ_SYSTEM_SUBHEADING_APPLY_CANCEL = "您已成功取消【%s】项目,祝您早日找到心仪的工作!";
|
||||||
//【报名】务工者给包工头提示
|
//【拒绝报名】5-6
|
||||||
|
public static final String WGZ_SYSTEM_HEADLINE_APPLY_REFUSE = "您已回拒【%s】项目!";
|
||||||
|
public static final String WGZ_SYSTEM_SUBHEADING_APPLY_REFUSE = "您已成功拒绝【%s】项目,祝您早日找到心仪的工作!";
|
||||||
|
//【确认报名】7-8
|
||||||
|
public static final String WGZ_SYSTEM_HEADLINE_APPLY_AFFIRM = "您已成功进入【%s】项目!";
|
||||||
|
public static final String WGZ_SYSTEM_SUBHEADING_APPLY_AFFIRM = "您已成功进入【%s】项目,祝你平平安安赚大钱!";
|
||||||
|
//【补卡申请】9-10
|
||||||
|
public static final String WGZ_SYSTEM_HEADLINE_REISSUEACARD = "您已申请了【%s】项目,【%s】的补卡操作!";
|
||||||
|
public static final String WGZ_SYSTEM_SUBHEADING_REISSUEACARD = "您已成功发起了【%s】的补卡申请,请耐心等待回复!";
|
||||||
|
//【工资结算】11-12
|
||||||
|
public static final String WGZ_SYSTEM_HEADLINE_PAYCALCULATION = "您正在申请【%s】项目,为期【%s】天的工资结算操作!";
|
||||||
|
public static final String WGZ_SYSTEM_SUBHEADING_PAYCALCULATION = "您已成功发起为期【%s】天,金额为【%s】的工资结算操作,请耐心等待回复!";
|
||||||
|
/**
|
||||||
|
* 务工者给包工头提示
|
||||||
|
*/
|
||||||
|
//【报名】1-2
|
||||||
public static final String WGZ_HEADLINE_APPLY = "务工者【%s】正在向你申请【%s】的岗位!";
|
public static final String WGZ_HEADLINE_APPLY = "务工者【%s】正在向你申请【%s】的岗位!";
|
||||||
public static final String WGZ__SUBHEADING_APPLY = "务工者【%s】正在向你申请【%s】岗位,您可点击查看更多信息!";
|
public static final String WGZ__SUBHEADING_APPLY = "务工者【%s】正在向你申请【%s】岗位,您可点击查看更多信息!";
|
||||||
|
//【拒绝报名】3-4
|
||||||
|
public static final String WGZ_HEADLINE_APPLY_REFUSE = "务工者【%s】已委婉的回拒了您提供的【%s】岗位!";
|
||||||
|
public static final String WGZ__SUBHEADING_APPLY_REFUSE = "务工者【%s】已委婉的回拒了您提供的【%s】岗位,并祝你做大做强!";
|
||||||
|
//【确认报名】5-6
|
||||||
|
public static final String WGZ_HEADLINE_APPLY_AFFIRM = "务工者【%s】已成功加入了您团队!";
|
||||||
|
public static final String WGZ__SUBHEADING_APPLY_AFFIRM = "务工者【%s】已同意进入了您提供的【%s】岗位!";
|
||||||
|
//【补卡申请】7-8
|
||||||
|
public static final String WGZ_HEADLINE_REISSUEACARD = "务工者【%s】正在向你发起补卡申请!";
|
||||||
|
public static final String WGZ__SUBHEADING_REISSUEACARD = "务工者【%s】向你发起【%s】的补卡申请操作!";
|
||||||
|
//【工资结算】9-10
|
||||||
|
public static final String WGZ_HEADLINE_PAYCALCULATION = "务工者【%s】正在向你发起工资结算!";
|
||||||
|
public static final String WGZ__SUBHEADING_PAYCALCULATION = "务工者【%s】向你发起为期【%s】天,金额为【%s】圆整的工资结算操作!";
|
||||||
|
|
||||||
//务工者消息返回
|
//务工者消息返回
|
||||||
public static String wgzMessage(Map<String, String> mp, String type) {
|
public static String wgzMessage(Map<String, String> mp, String type) {
|
||||||
switch (type){
|
switch (type){
|
||||||
//系统申请报名提示
|
//系统申请报名提示
|
||||||
case "1":
|
case "101":
|
||||||
return String.format(WGZ_SYSTEM_HEADLINE_APPLY, mp.get("projectName"));
|
return String.format(WGZ_SYSTEM_HEADLINE_APPLY, mp.get("projectName"));
|
||||||
case "2":
|
case "102":
|
||||||
return String.format(WGZ_SYSTEM_SUBHEADING_APPLY, mp.get("projectName"));
|
return String.format(WGZ_SYSTEM_SUBHEADING_APPLY, mp.get("projectName"));
|
||||||
//务工者向包工头申请报名提示
|
|
||||||
case "3":
|
|
||||||
return String.format(WGZ_HEADLINE_APPLY, mp.get("userName"), mp.get("post"));
|
|
||||||
case "4":
|
|
||||||
return String.format(WGZ__SUBHEADING_APPLY, mp.get("userName"),mp.get("post"));
|
|
||||||
//系统取消报名提示
|
//系统取消报名提示
|
||||||
case "5":
|
case "103":
|
||||||
return String.format(WGZ_SYSTEM_HEADLINE_APPLY_CANCEL, mp.get("projectName"));
|
return String.format(WGZ_SYSTEM_HEADLINE_APPLY_CANCEL, mp.get("projectName"));
|
||||||
case "6":
|
case "104":
|
||||||
return String.format(WGZ_SYSTEM_SUBHEADING_APPLY_CANCEL, mp.get("projectName"));
|
return String.format(WGZ_SYSTEM_SUBHEADING_APPLY_CANCEL, mp.get("projectName"));
|
||||||
|
//系统拒绝报名提示
|
||||||
|
case "105":
|
||||||
|
return String.format(WGZ_SYSTEM_HEADLINE_APPLY_REFUSE, mp.get("projectName"));
|
||||||
|
case "106":
|
||||||
|
return String.format(WGZ_SYSTEM_SUBHEADING_APPLY_REFUSE, mp.get("projectName"));
|
||||||
|
//系统确认报名提示
|
||||||
|
case "107":
|
||||||
|
return String.format(WGZ_SYSTEM_HEADLINE_APPLY_AFFIRM, mp.get("projectName"));
|
||||||
|
case "108":
|
||||||
|
return String.format(WGZ_SYSTEM_SUBHEADING_APPLY_AFFIRM, mp.get("projectName"));
|
||||||
|
//系统补卡申请提示
|
||||||
|
case "109":
|
||||||
|
return String.format(WGZ_SYSTEM_HEADLINE_REISSUEACARD, mp.get("projectName"),mp.get("data"));
|
||||||
|
case "110":
|
||||||
|
return String.format(WGZ_SYSTEM_SUBHEADING_REISSUEACARD, mp.get("projectName"));
|
||||||
|
//系统工资结算申请提示
|
||||||
|
case "111":
|
||||||
|
return String.format(WGZ_SYSTEM_HEADLINE_PAYCALCULATION,mp.get("projectName"), mp.get("num"));
|
||||||
|
case "112":
|
||||||
|
return String.format(WGZ_SYSTEM_SUBHEADING_PAYCALCULATION, mp.get("num"),mp.get("money"));
|
||||||
|
//务工者向包工头申请报名
|
||||||
|
case "201":
|
||||||
|
return String.format(WGZ_HEADLINE_APPLY, mp.get("userName"), mp.get("post"));
|
||||||
|
case "202":
|
||||||
|
return String.format(WGZ__SUBHEADING_APPLY, mp.get("userName"),mp.get("post"));
|
||||||
|
//务工者向包工头拒绝报名
|
||||||
|
case "203":
|
||||||
|
return String.format(WGZ_HEADLINE_APPLY_REFUSE, mp.get("userName"), mp.get("post"));
|
||||||
|
case "204":
|
||||||
|
return String.format(WGZ__SUBHEADING_APPLY_REFUSE, mp.get("userName"),mp.get("post"));
|
||||||
|
//务工者向包工头确认报名
|
||||||
|
case "205":
|
||||||
|
return String.format(WGZ_HEADLINE_APPLY_AFFIRM, mp.get("userName"));
|
||||||
|
case "206":
|
||||||
|
return String.format(WGZ__SUBHEADING_APPLY_AFFIRM, mp.get("userName"),mp.get("post"));
|
||||||
|
//务工者向包工头发起补卡申请
|
||||||
|
case "207":
|
||||||
|
return String.format(WGZ_HEADLINE_REISSUEACARD, mp.get("userName"));
|
||||||
|
case "208":
|
||||||
|
return String.format(WGZ__SUBHEADING_REISSUEACARD, mp.get("userName"),mp.get("data"));
|
||||||
|
//务工者向包工头发起工资结算
|
||||||
|
case "209":
|
||||||
|
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"));
|
||||||
default:
|
default:
|
||||||
return "未知类型";
|
return "未知类型";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* =====================================================包工头=====================================================
|
* =====================================================包工头=====================================================
|
||||||
* =====================================================包工头=====================================================
|
* =====================================================包工头=====================================================
|
||||||
@ -78,6 +151,7 @@ public class WgzAndBgtMessageConstant {
|
|||||||
public static final String SUBHEADING = "subheading"; //副标题
|
public static final String SUBHEADING = "subheading"; //副标题
|
||||||
|
|
||||||
//消息类型
|
//消息类型
|
||||||
|
public static final String BGT_LARGE = "3"; //大类型固定为3
|
||||||
public static final String BGT_TYPE_SIGN_UP = "1"; //务工者报名
|
public static final String BGT_TYPE_SIGN_UP = "1"; //务工者报名
|
||||||
public static final String BGT_TYPE_PAY = "2"; //付款
|
public static final String BGT_TYPE_PAY = "2"; //付款
|
||||||
public static final String BGT_TYPE_LEAVE = "3"; //请假
|
public static final String BGT_TYPE_LEAVE = "3"; //请假
|
||||||
|
@ -102,4 +102,13 @@ public interface ISysDictTypeService extends IServicePlus<SysDictType> {
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public String checkDictTypeUnique(SysDictType dictType);
|
public String checkDictTypeUnique(SysDictType dictType);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据字典类型+字典数据 = 指定字典
|
||||||
|
*
|
||||||
|
* @param dictType 字典类型
|
||||||
|
* @return 字典数据集合信息
|
||||||
|
*/
|
||||||
|
public SysDictData selectDictDataByTypeAndData(String dictType,String dictData);
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -235,4 +236,25 @@ public class SysDictTypeServiceImpl extends ServicePlusImpl<SysDictTypeMapper, S
|
|||||||
}
|
}
|
||||||
return UserConstants.UNIQUE;
|
return UserConstants.UNIQUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SysDictData selectDictDataByTypeAndData(String dictType, String dictData) {
|
||||||
|
List<SysDictData> dictDatas = DictUtils.getDictCache(dictType);
|
||||||
|
if (CollUtil.isNotEmpty(dictDatas)) {
|
||||||
|
for (SysDictData data : dictDatas) {
|
||||||
|
if (data.getDictValue().equals(dictData)){
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dictDatas = dictDataMapper.selectDictDataByType(dictType);
|
||||||
|
if (CollUtil.isNotEmpty(dictDatas)) {
|
||||||
|
for (SysDictData data : dictDatas) {
|
||||||
|
if (data.getDictValue().equals(dictData)){
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,18 @@
|
|||||||
|
package com.ruoyi.wgz.bo.req;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@ApiModel("修改已读未读状态请求对象")
|
||||||
|
public class WgzAppReadUnreadReq implements Serializable {
|
||||||
|
@ApiModelProperty("消息主键自增ID")
|
||||||
|
private Long messageId;
|
||||||
|
}
|
@ -24,7 +24,7 @@ public class WgzAppPersonalBasicInformationRes implements Serializable {
|
|||||||
@ApiModelProperty("姓名")
|
@ApiModelProperty("姓名")
|
||||||
private String username;
|
private String username;
|
||||||
|
|
||||||
@ApiModelProperty("性别")
|
@ApiModelProperty("性别字典sys_user_sex")
|
||||||
private String gender;
|
private String gender;
|
||||||
|
|
||||||
@ApiModelProperty("民族")
|
@ApiModelProperty("民族")
|
||||||
|
@ -13,6 +13,6 @@ import java.io.Serializable;
|
|||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
@ApiModel("考勤打卡·APP用户今日打卡状态")
|
@ApiModel("考勤打卡·APP用户今日打卡状态")
|
||||||
public class WgzAppUserClockingConditionRes implements Serializable {
|
public class WgzAppUserClockingConditionRes implements Serializable {
|
||||||
@ApiModelProperty("务工者今日打卡状态:0上班 1下班 2请假")
|
@ApiModelProperty("务工者今日打卡状态:0上班 1下班 2请假 3已完成")
|
||||||
private Integer clockingCondition;
|
private Integer clockingCondition;
|
||||||
}
|
}
|
||||||
|
@ -84,7 +84,7 @@ public class WgzPayCalculation implements Serializable {
|
|||||||
/** 出勤天数 */
|
/** 出勤天数 */
|
||||||
@Excel(name = "出勤天数")
|
@Excel(name = "出勤天数")
|
||||||
@ApiModelProperty("出勤天数")
|
@ApiModelProperty("出勤天数")
|
||||||
private Long num;
|
private Integer num;
|
||||||
|
|
||||||
/** 务工状态 */
|
/** 务工状态 */
|
||||||
@Excel(name = "务工状态")
|
@Excel(name = "务工状态")
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package com.ruoyi.wgz.service;
|
package com.ruoyi.wgz.service;
|
||||||
|
|
||||||
|
import com.ruoyi.wgz.bo.req.WgzAppConfirmRegistrationReq;
|
||||||
import com.ruoyi.wgz.bo.req.WgzAppGetMessageListReq;
|
import com.ruoyi.wgz.bo.req.WgzAppGetMessageListReq;
|
||||||
|
import com.ruoyi.wgz.bo.req.WgzAppReadUnreadReq;
|
||||||
import com.ruoyi.wgz.bo.res.WgzAppGetMessageListRes;
|
import com.ruoyi.wgz.bo.res.WgzAppGetMessageListRes;
|
||||||
import com.ruoyi.wgz.bo.res.WgzAppMessageTypeStatisticsRes;
|
import com.ruoyi.wgz.bo.res.WgzAppMessageTypeStatisticsRes;
|
||||||
import com.ruoyi.wgz.bo.res.WgzAppRegistrationInformationRes;
|
import com.ruoyi.wgz.bo.res.WgzAppRegistrationInformationRes;
|
||||||
@ -84,4 +86,9 @@ public interface IWgzMessageService extends IServicePlus<WgzMessage> {
|
|||||||
* 根据消息招工申请信息的主键ID去获取招工信息
|
* 根据消息招工申请信息的主键ID去获取招工信息
|
||||||
*/
|
*/
|
||||||
WgzAppRegistrationInformationRes userRegistrationInformation(Long messageId);
|
WgzAppRegistrationInformationRes userRegistrationInformation(Long messageId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改已读未读状态
|
||||||
|
*/
|
||||||
|
Boolean userReadUnread(@Validated WgzAppReadUnreadReq req);
|
||||||
}
|
}
|
||||||
|
@ -188,7 +188,7 @@ public class WgzAttendanceServiceImpl extends ServicePlusImpl<WgzAttendanceMappe
|
|||||||
setPnchOsition(req.getPnchOsition());
|
setPnchOsition(req.getPnchOsition());
|
||||||
LocalDateTime now = LocalDateTime.now(); //当前完整年月日时分秒
|
LocalDateTime now = LocalDateTime.now(); //当前完整年月日时分秒
|
||||||
LocalTime localTime = now.toLocalTime(); //获取时分秒
|
LocalTime localTime = now.toLocalTime(); //获取时分秒
|
||||||
if (Objects.isNull(we)) { //表示当天第一次打卡---上班
|
if (Objects.isNull(we)) { //表示当天第一次打卡---上班 否则 表示当天不是第一次打卡---下班
|
||||||
wgzAttendance.setClockInTime(now);
|
wgzAttendance.setClockInTime(now);
|
||||||
LocalTime beginWorkTime = appById.getBeginWorkTime(); //上班
|
LocalTime beginWorkTime = appById.getBeginWorkTime(); //上班
|
||||||
if (!localTime.isBefore(beginWorkTime)) {
|
if (!localTime.isBefore(beginWorkTime)) {
|
||||||
@ -196,7 +196,12 @@ public class WgzAttendanceServiceImpl extends ServicePlusImpl<WgzAttendanceMappe
|
|||||||
wgzAttendance.setLateTime(now);
|
wgzAttendance.setLateTime(now);
|
||||||
wgzAttendance.setExceptionType("1,");
|
wgzAttendance.setExceptionType("1,");
|
||||||
}
|
}
|
||||||
}else{ //表示当天不是第一次打卡---下班
|
}else{
|
||||||
|
//7、获取上次打卡时间与这次打卡时间的间隔是否超过3分钟
|
||||||
|
boolean flag = isMinutesDifferenceGreaterThanThree(we.getClockInTime(), now);
|
||||||
|
if (!flag){
|
||||||
|
throw new RuntimeException("打卡时间间隔不能少于3分钟");
|
||||||
|
}
|
||||||
wgzAttendance.setClockOutTime(now);
|
wgzAttendance.setClockOutTime(now);
|
||||||
LocalTime endWorkTime = appById.getEndWorkTime(); //下班
|
LocalTime endWorkTime = appById.getEndWorkTime(); //下班
|
||||||
if (!localTime.isAfter(endWorkTime)) {
|
if (!localTime.isAfter(endWorkTime)) {
|
||||||
@ -208,6 +213,21 @@ public class WgzAttendanceServiceImpl extends ServicePlusImpl<WgzAttendanceMappe
|
|||||||
return baseMapper.insert(wgzAttendance) > 0;
|
return baseMapper.insert(wgzAttendance) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断两个 LocalDateTime 之间的差值分钟数是否超过 3
|
||||||
|
* @param startTime 开始时间
|
||||||
|
* @param endTime 结束时间
|
||||||
|
* @return 如果差值分钟数超过 3 返回 true,否则返回 false
|
||||||
|
*/
|
||||||
|
public static boolean isMinutesDifferenceGreaterThanThree(LocalDateTime startTime, LocalDateTime endTime) {
|
||||||
|
// 计算两个时间之间的持续时间
|
||||||
|
Duration duration = Duration.between(startTime, endTime);
|
||||||
|
// 获取持续时间的分钟数
|
||||||
|
long minutes = duration.toMinutes();
|
||||||
|
// 判断分钟数是否超过 3
|
||||||
|
return Math.abs(minutes) > 3;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WgzAppUserClockingConditionRes userClockingCondition() {
|
public WgzAppUserClockingConditionRes userClockingCondition() {
|
||||||
WgzAppUserClockingConditionRes res = new WgzAppUserClockingConditionRes();
|
WgzAppUserClockingConditionRes res = new WgzAppUserClockingConditionRes();
|
||||||
@ -217,10 +237,14 @@ public class WgzAttendanceServiceImpl extends ServicePlusImpl<WgzAttendanceMappe
|
|||||||
String formattedDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
String formattedDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
||||||
WgzAttendance wgzAttendance = publicFindByUserIdWait(appUserId, by.getId(), formattedDate);
|
WgzAttendance wgzAttendance = publicFindByUserIdWait(appUserId, by.getId(), formattedDate);
|
||||||
//2、获取今日用户打卡状态
|
//2、获取今日用户打卡状态
|
||||||
if (Objects.isNull(wgzAttendance)) {
|
if (wgzAttendance == null) {
|
||||||
res.setClockingCondition(0); //上班
|
res.setClockingCondition(0); //上班
|
||||||
}else{
|
}else{
|
||||||
res.setClockingCondition(1); //下班
|
res.setClockingCondition(1); //下班
|
||||||
|
//上下班都打卡了就是已完成
|
||||||
|
if (wgzAttendance.getClockInTime()!=null && wgzAttendance.getClockOutTime()!=null){
|
||||||
|
res.setClockingCondition(3); //已完成
|
||||||
|
}
|
||||||
if (wgzAttendance.getLeaveMarkId()!= null && wgzAttendance.getLeaveMarkId()!= 0) {
|
if (wgzAttendance.getLeaveMarkId()!= null && wgzAttendance.getLeaveMarkId()!= 0) {
|
||||||
res.setClockingCondition(2); //请假
|
res.setClockingCondition(2); //请假
|
||||||
}
|
}
|
||||||
|
@ -13,8 +13,10 @@ import com.ruoyi.common.core.page.PagePlus;
|
|||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.common.utils.SecurityUtils;
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
import com.ruoyi.system.service.ISysDictTypeService;
|
import com.ruoyi.system.service.ISysDictTypeService;
|
||||||
|
import com.ruoyi.wgz.bo.req.WgzAppConfirmRegistrationReq;
|
||||||
import com.ruoyi.wgz.bo.req.WgzAppGetMessageListReq;
|
import com.ruoyi.wgz.bo.req.WgzAppGetMessageListReq;
|
||||||
import com.ruoyi.wgz.bo.req.WgzAppLeaveHistoryListPageReq;
|
import com.ruoyi.wgz.bo.req.WgzAppLeaveHistoryListPageReq;
|
||||||
|
import com.ruoyi.wgz.bo.req.WgzAppReadUnreadReq;
|
||||||
import com.ruoyi.wgz.bo.res.WgzAppGetMessageListRes;
|
import com.ruoyi.wgz.bo.res.WgzAppGetMessageListRes;
|
||||||
import com.ruoyi.wgz.bo.res.WgzAppMessageTypeStatisticsRes;
|
import com.ruoyi.wgz.bo.res.WgzAppMessageTypeStatisticsRes;
|
||||||
import com.ruoyi.wgz.bo.res.WgzAppRegistrationInformationRes;
|
import com.ruoyi.wgz.bo.res.WgzAppRegistrationInformationRes;
|
||||||
@ -170,4 +172,10 @@ public class WgzMessageServiceImpl extends ServicePlusImpl<WgzMessageMapper, Wgz
|
|||||||
// byRecruitIdData.setAnnex(null);
|
// byRecruitIdData.setAnnex(null);
|
||||||
return byRecruitIdData;
|
return byRecruitIdData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean userReadUnread(WgzAppReadUnreadReq req) {
|
||||||
|
WgzMessage wgzMessage = new WgzMessage().setId(req.getMessageId()).setReadStatus("1");
|
||||||
|
return baseMapper.updateById(wgzMessage) > 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,14 +5,18 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
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.BgtProjectRecruit;
|
||||||
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
|
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
|
||||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationDetailBaseVO;
|
import com.ruoyi.bgt.domain.dto.BgtPayCalculationDetailBaseVO;
|
||||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationDetailListVO;
|
import com.ruoyi.bgt.domain.dto.BgtPayCalculationDetailListVO;
|
||||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationListDTO;
|
import com.ruoyi.bgt.domain.dto.BgtPayCalculationListDTO;
|
||||||
import com.ruoyi.bgt.domain.dto.BgtPayCalculationUpdateDTO;
|
import com.ruoyi.bgt.domain.dto.BgtPayCalculationUpdateDTO;
|
||||||
|
import com.ruoyi.bgt.service.IBgtMessageService;
|
||||||
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
|
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
|
||||||
import com.ruoyi.bgt.service.IBgtProjectRecruitService;
|
import com.ruoyi.bgt.service.IBgtProjectRecruitService;
|
||||||
|
import com.ruoyi.common.constants.WgzAndBgtMessageConstant;
|
||||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||||
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
|
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
@ -24,14 +28,9 @@ import com.ruoyi.wgz.bo.WgzPayCalculationQueryBo;
|
|||||||
import com.ruoyi.wgz.bo.req.WgzAppApplyForPayrollSettlementListReq;
|
import com.ruoyi.wgz.bo.req.WgzAppApplyForPayrollSettlementListReq;
|
||||||
import com.ruoyi.wgz.bo.req.WgzApplyForPayrollSettlementAddReq;
|
import com.ruoyi.wgz.bo.req.WgzApplyForPayrollSettlementAddReq;
|
||||||
import com.ruoyi.wgz.bo.res.WgzAppApplyForPayrollSettlementListRes;
|
import com.ruoyi.wgz.bo.res.WgzAppApplyForPayrollSettlementListRes;
|
||||||
import com.ruoyi.wgz.domain.WgzPayCalculation;
|
import com.ruoyi.wgz.domain.*;
|
||||||
import com.ruoyi.wgz.domain.WgzPayCalculationFiles;
|
|
||||||
import com.ruoyi.wgz.domain.WgzUser;
|
|
||||||
import com.ruoyi.wgz.mapper.WgzPayCalculationMapper;
|
import com.ruoyi.wgz.mapper.WgzPayCalculationMapper;
|
||||||
import com.ruoyi.wgz.service.IWgzAttendanceService;
|
import com.ruoyi.wgz.service.*;
|
||||||
import com.ruoyi.wgz.service.IWgzPayCalculationFilesService;
|
|
||||||
import com.ruoyi.wgz.service.IWgzPayCalculationService;
|
|
||||||
import com.ruoyi.wgz.service.IWgzUserService;
|
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -40,9 +39,12 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static com.ruoyi.common.constants.WgzAndBgtMessageConstant.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工资结算Service业务层处理
|
* 工资结算Service业务层处理
|
||||||
*
|
*
|
||||||
@ -70,6 +72,12 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IWgzAttendanceService attendanceService;
|
private IWgzAttendanceService attendanceService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IWgzMessageService iWgzMessageService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IBgtMessageService iBgtMessageService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WgzPayCalculation queryById(Long id){
|
public WgzPayCalculation queryById(Long id){
|
||||||
return getById(id);
|
return getById(id);
|
||||||
@ -153,17 +161,54 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
|
|||||||
public Boolean userApplyForPayrollSettlementAdd(WgzApplyForPayrollSettlementAddReq req) {
|
public Boolean userApplyForPayrollSettlementAdd(WgzApplyForPayrollSettlementAddReq req) {
|
||||||
//1、获取当前人
|
//1、获取当前人
|
||||||
SysUser user = SecurityUtils.getLoginUser().getUser();
|
SysUser user = SecurityUtils.getLoginUser().getUser();
|
||||||
BgtProjectRecruitApply by = iBgtProjectRecruitApplyService.selectByUserIdProjectRecruitApplyId(user.getUserId());
|
BgtProjectRecruitApply recruitApply = iBgtProjectRecruitApplyService.selectByUserIdProjectRecruitApplyId(user.getUserId());
|
||||||
BgtProjectRecruit appById = iBgtProjectRecruitService.getAppById(by.getId());
|
BgtProjectRecruit recruit = iBgtProjectRecruitService.getAppById(recruitApply.getId());
|
||||||
//2、组装数据
|
//2、组装数据
|
||||||
WgzPayCalculation wgzPayCalculation = new WgzPayCalculation();
|
WgzPayCalculation wgzPayCalculation = new WgzPayCalculation();
|
||||||
BeanUtils.copyProperties(req,wgzPayCalculation);
|
BeanUtils.copyProperties(req,wgzPayCalculation);
|
||||||
wgzPayCalculation.
|
wgzPayCalculation.
|
||||||
setUserId(user.getUserId()).
|
setUserId(user.getUserId()).
|
||||||
setUserName(user.getUserName()).
|
setUserName(user.getUserName()).
|
||||||
setAuditorUserId(appById.getUserId());
|
setAuditorUserId(recruit.getUserId());
|
||||||
//3、获取附件信息并插入
|
//3、获取附件信息并插入
|
||||||
iWgzPayCalculationFilesService.saveBatch(req.getPayCalculation());
|
iWgzPayCalculationFilesService.saveBatch(req.getPayCalculation());
|
||||||
|
//4、插入工资结算信息
|
||||||
|
boolean save = save(wgzPayCalculation);
|
||||||
|
if (save) {
|
||||||
|
WgzUser byId = wgzUserService.findByUserId(user.getUserId());
|
||||||
|
Map<String, String> mp = new HashMap<>();
|
||||||
|
mp.put("projectName", recruit.getRecruitName());
|
||||||
|
mp.put("userName", byId.getUsername());
|
||||||
|
mp.put("num", String.valueOf(wgzPayCalculation.getNum()));
|
||||||
|
mp.put("money", String.valueOf(new BigDecimal(wgzPayCalculation.getNum()).multiply(wgzPayCalculation.getRecruitAmount())));
|
||||||
|
WgzMessage wgzMessage = new WgzMessage().
|
||||||
|
setSenderType(USERTYPE_SYSTEM).
|
||||||
|
setRecipientType(USERTYPE_WGZ).
|
||||||
|
setRecipientId(user.getUserId()).
|
||||||
|
setHeadline(WgzAndBgtMessageConstant.wgzMessage(mp,"111")).
|
||||||
|
setSubheading(WgzAndBgtMessageConstant.wgzMessage(mp,"112")).
|
||||||
|
setTableId(wgzPayCalculation.getId()).
|
||||||
|
setTableName(SqlHelper.table(WgzPayCalculation.class).getTableName()).
|
||||||
|
setMessageLargeType(LARGE_SALARY);
|
||||||
|
if (!iWgzMessageService.sendAMessage(wgzMessage)){
|
||||||
|
throw new RuntimeException("系统工资结算消息发送失败!");
|
||||||
|
}
|
||||||
|
BgtMessage bgtMessage = new BgtMessage().
|
||||||
|
setSenderType(USERTYPE_WGZ).
|
||||||
|
setSenderId(user.getUserId()).
|
||||||
|
setRecipientType(USERTYPE_BGT).
|
||||||
|
setRecipientId(recruit.getUserId()).
|
||||||
|
setHeadline(WgzAndBgtMessageConstant.wgzMessage(mp,"209")).
|
||||||
|
setSubheading(WgzAndBgtMessageConstant.wgzMessage(mp,"210")).
|
||||||
|
setTableId(wgzPayCalculation.getId()).
|
||||||
|
setTableName(SqlHelper.table(WgzPayCalculation.class).getTableName()).
|
||||||
|
setMessageLargeType(BGT_LARGE).
|
||||||
|
setMessageSmallType(BGT_TYPE_PAY);
|
||||||
|
if (!iBgtMessageService.sendAMessage(bgtMessage)){
|
||||||
|
throw new RuntimeException("发送补卡消息失败!");
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
return save(wgzPayCalculation);
|
return save(wgzPayCalculation);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,12 +5,16 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
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.BgtProjectRecruit;
|
||||||
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
|
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
|
||||||
import com.ruoyi.bgt.domain.dto.BgtReissueacardListDTO;
|
import com.ruoyi.bgt.domain.dto.BgtReissueacardListDTO;
|
||||||
import com.ruoyi.bgt.domain.dto.BgtReissueacardUpdateDTO;
|
import com.ruoyi.bgt.domain.dto.BgtReissueacardUpdateDTO;
|
||||||
|
import com.ruoyi.bgt.service.IBgtMessageService;
|
||||||
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
|
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
|
||||||
import com.ruoyi.bgt.service.IBgtProjectRecruitService;
|
import com.ruoyi.bgt.service.IBgtProjectRecruitService;
|
||||||
|
import com.ruoyi.common.constants.WgzAndBgtMessageConstant;
|
||||||
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
|
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.common.utils.PageUtils;
|
import com.ruoyi.common.utils.PageUtils;
|
||||||
@ -20,19 +24,23 @@ import com.ruoyi.wgz.bo.req.WgzAppCardReplacementApplicationReq;
|
|||||||
import com.ruoyi.wgz.bo.req.WgzAppReplacementCardRecordReq;
|
import com.ruoyi.wgz.bo.req.WgzAppReplacementCardRecordReq;
|
||||||
import com.ruoyi.wgz.bo.res.WgzReplacementCardRecordRes;
|
import com.ruoyi.wgz.bo.res.WgzReplacementCardRecordRes;
|
||||||
import com.ruoyi.wgz.domain.WgzAttendance;
|
import com.ruoyi.wgz.domain.WgzAttendance;
|
||||||
|
import com.ruoyi.wgz.domain.WgzMessage;
|
||||||
import com.ruoyi.wgz.domain.WgzReissueacard;
|
import com.ruoyi.wgz.domain.WgzReissueacard;
|
||||||
|
import com.ruoyi.wgz.domain.WgzUser;
|
||||||
import com.ruoyi.wgz.mapper.WgzReissueacardMapper;
|
import com.ruoyi.wgz.mapper.WgzReissueacardMapper;
|
||||||
import com.ruoyi.wgz.service.IWgzAttendanceService;
|
import com.ruoyi.wgz.service.IWgzAttendanceService;
|
||||||
|
import com.ruoyi.wgz.service.IWgzMessageService;
|
||||||
import com.ruoyi.wgz.service.IWgzReissueacardService;
|
import com.ruoyi.wgz.service.IWgzReissueacardService;
|
||||||
|
import com.ruoyi.wgz.service.IWgzUserService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.Collection;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import static com.ruoyi.common.constants.WgzAndBgtMessageConstant.*;
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 补卡申请Service业务层处理
|
* 补卡申请Service业务层处理
|
||||||
@ -52,6 +60,15 @@ public class WgzReissueacardServiceImpl extends ServicePlusImpl<WgzReissueacardM
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IWgzAttendanceService iWgzAttendanceService;
|
private IWgzAttendanceService iWgzAttendanceService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IWgzMessageService iWgzMessageService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IBgtMessageService iBgtMessageService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IWgzUserService wgzUserService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WgzReissueacard queryById(Long id){
|
public WgzReissueacard queryById(Long id){
|
||||||
return getById(id);
|
return getById(id);
|
||||||
@ -132,10 +149,8 @@ public class WgzReissueacardServiceImpl extends ServicePlusImpl<WgzReissueacardM
|
|||||||
public Boolean userCardReplacementApplication(WgzAppCardReplacementApplicationReq req) {
|
public Boolean userCardReplacementApplication(WgzAppCardReplacementApplicationReq req) {
|
||||||
//1、获取当前用户信息
|
//1、获取当前用户信息
|
||||||
Long appUserId = SecurityUtils.getAppUserId();
|
Long appUserId = SecurityUtils.getAppUserId();
|
||||||
//2、获取当前用户所在的工地id
|
BgtProjectRecruitApply recruitApply = iBgtProjectRecruitApplyService.selectByUserIdProjectRecruitApplyId(appUserId);
|
||||||
BgtProjectRecruitApply by = iBgtProjectRecruitApplyService.selectByUserIdProjectRecruitApplyId(appUserId);
|
BgtProjectRecruit recruit = iBgtProjectRecruitService.getAppById(recruitApply.getId());
|
||||||
//3、根据招工id获取到具体招工信息
|
|
||||||
BgtProjectRecruit appById = iBgtProjectRecruitService.getAppById(by.getId());
|
|
||||||
//4、获取到原打卡的信息
|
//4、获取到原打卡的信息
|
||||||
WgzAttendance attendanceInfo = iWgzAttendanceService.findById(req.getAttendanceId());
|
WgzAttendance attendanceInfo = iWgzAttendanceService.findById(req.getAttendanceId());
|
||||||
if (Objects.isNull(attendanceInfo)) {
|
if (Objects.isNull(attendanceInfo)) {
|
||||||
@ -149,16 +164,53 @@ public class WgzReissueacardServiceImpl extends ServicePlusImpl<WgzReissueacardM
|
|||||||
}
|
}
|
||||||
//5、组装补卡申请数据
|
//5、组装补卡申请数据
|
||||||
WgzReissueacard wgzReissueacard = new WgzReissueacard().
|
WgzReissueacard wgzReissueacard = new WgzReissueacard().
|
||||||
setRecruitId(by.getRecruitId()).
|
setRecruitId(recruitApply.getRecruitId()).
|
||||||
setUserId(appUserId).
|
setUserId(appUserId).
|
||||||
setAttendanceId(req.getAttendanceId()).
|
setAttendanceId(req.getAttendanceId()).
|
||||||
setType(req.getType()).
|
setType(req.getType()).
|
||||||
setRecruitName(appById.getRecruitName()).
|
setRecruitName(recruit.getRecruitName()).
|
||||||
setRawTime(rawTime).
|
setRawTime(rawTime).
|
||||||
setNowTime(req.getNowTime()).
|
setNowTime(req.getNowTime()).
|
||||||
setReason(req.getReason()).
|
setReason(req.getReason()).
|
||||||
setAttendanceId(appById.getUserId());
|
setAttendanceId(recruit.getUserId());
|
||||||
return baseMapper.insert(wgzReissueacard) > 0;
|
int insert = baseMapper.insert(wgzReissueacard);
|
||||||
|
//6、发送消息
|
||||||
|
WgzUser byId = wgzUserService.findByUserId(appUserId);
|
||||||
|
Map<String, String> mp = new HashMap<>();
|
||||||
|
mp.put("projectName", recruit.getRecruitName());
|
||||||
|
mp.put("userName", byId.getUsername());
|
||||||
|
mp.put("data",String.valueOf(req.getNowTime()));
|
||||||
|
if (insert > 0) {
|
||||||
|
WgzMessage wgzMessage = new WgzMessage().
|
||||||
|
setSenderType(USERTYPE_SYSTEM).
|
||||||
|
setRecipientType(USERTYPE_WGZ).
|
||||||
|
setRecipientId(appUserId).
|
||||||
|
setHeadline(WgzAndBgtMessageConstant.wgzMessage(mp,"109")).
|
||||||
|
setSubheading(WgzAndBgtMessageConstant.wgzMessage(mp,"110")).
|
||||||
|
setTableId(wgzReissueacard.getId()).
|
||||||
|
setTableName(SqlHelper.table(WgzReissueacard.class).getTableName()).
|
||||||
|
setMessageLargeType(LARGE_OTHER).
|
||||||
|
setMessageSmallType(SMALL_CARD);
|
||||||
|
if (!iWgzMessageService.sendAMessage(wgzMessage)){
|
||||||
|
throw new RuntimeException("系统补卡消息发送失败!");
|
||||||
|
}
|
||||||
|
BgtMessage bgtMessage = new BgtMessage().
|
||||||
|
setSenderType(USERTYPE_WGZ).
|
||||||
|
setSenderId(appUserId).
|
||||||
|
setRecipientType(USERTYPE_BGT).
|
||||||
|
setRecipientId(recruit.getUserId()).
|
||||||
|
setHeadline(WgzAndBgtMessageConstant.wgzMessage(mp,"207")).
|
||||||
|
setSubheading(WgzAndBgtMessageConstant.wgzMessage(mp,"208")).
|
||||||
|
setTableId(wgzReissueacard.getId()).
|
||||||
|
setTableName(SqlHelper.table(BgtProjectRecruitApply.class).getTableName()).
|
||||||
|
setMessageLargeType(BGT_LARGE).
|
||||||
|
setMessageSmallType(BGT_TYPE_MAKE_UP);
|
||||||
|
if (!iBgtMessageService.sendAMessage(bgtMessage)){
|
||||||
|
throw new RuntimeException("发送补卡消息失败!");
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
c.task_name,
|
c.task_name,
|
||||||
c.task_address,
|
c.task_address,
|
||||||
c.task_img,
|
c.task_img,
|
||||||
(SELECT count(1) FROM bgt_project_recruit_apply WHERE recruit_id = a.id) as numberOfRegistered
|
(SELECT count(1) FROM bgt_project_recruit_apply WHERE recruit_id = b.id) as numberOfRegistered
|
||||||
FROM
|
FROM
|
||||||
bgt_project_recruit as b
|
bgt_project_recruit as b
|
||||||
LEFT JOIN fbs_project_task as c ON (c.id = b.task_id AND c.del_flag = 0)
|
LEFT JOIN fbs_project_task as c ON (c.id = b.task_id AND c.del_flag = 0)
|
||||||
|
Reference in New Issue
Block a user