优化
This commit is contained in:
@ -17,7 +17,8 @@ public class FbsMessageConstant {
|
||||
|
||||
public static final String FBS_SMALL_SIGN_UP = "1"; //小类型-包工头报名
|
||||
public static final String FBS_SMALL_PAY = "2"; //小类型-付款
|
||||
public static final String FBS_SMALL_PROGRESS = "3"; //小类型-进度
|
||||
public static final String FBS_SMALL_PROGRESS = "3"; //小类型-进度
|
||||
public static final String FBS_SMALL_SYSTEM = "4"; //小类型-系统
|
||||
|
||||
public static final List<String> AUDIT_TYPE = Arrays.asList("2", "3");
|
||||
/**
|
||||
|
@ -33,11 +33,14 @@ public class ZbfMessageConstant {
|
||||
//工资审批
|
||||
public static final String ZBF_PAY_APPLY_HEADLINE = "您【%s】项目【%s】分包工资申请已审批!";
|
||||
public static final String ZBF_PAY_APPLY_SUBHEADING = "您申请的【%s】项目【%s】分包工资,审核人【%s】已%s!";
|
||||
|
||||
//任务提醒
|
||||
public static final String ZBF_REMIND_HEADLINE = "请尽快完成【%s】任务!";
|
||||
public static final String ZBF_REMIND_SUBHEADING = "总包方【%s】提醒您完成【%s】任务!";
|
||||
|
||||
//分包商->包工头 消息类型
|
||||
public static final String ZBF_TYPE_SIGN_UP = "1"; //包工头报名
|
||||
public static final String ZBF_TYPE_PAY = "2"; //付款
|
||||
public static final String ZBF_REMIND = "3"; //提醒
|
||||
|
||||
/**
|
||||
* ============================================系统->分包商 模板==================================================
|
||||
@ -84,6 +87,10 @@ public class ZbfMessageConstant {
|
||||
map.put(HEADLINE, String.format(ZBF_PAY_APPLY_HEADLINE, projectName,subName));
|
||||
map.put(SUBHEADING, String.format(ZBF_PAY_APPLY_SUBHEADING, projectName,subName, auditor, pass));
|
||||
break;
|
||||
case "3":
|
||||
map.put(HEADLINE, String.format(ZBF_REMIND_HEADLINE, projectName));
|
||||
map.put(SUBHEADING, String.format(ZBF_REMIND_SUBHEADING, auditor,projectName));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -440,8 +440,10 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
|
||||
|
||||
List<BgtWageApplication> wageList = wageApplicationService.list(Wrappers.<BgtWageApplication>lambdaQuery()
|
||||
.in(BgtWageApplication::getTaskId, taskIds).orderByDesc(BgtWageApplication::getId));
|
||||
if (CollectionUtil.isNotEmpty(wageList)){
|
||||
vo.setWageApplication(BeanUtil.copyProperties(wageList.get(0), BgtWageApplicationListVO.class));
|
||||
}
|
||||
|
||||
vo.setWageApplication(BeanUtil.copyProperties(wageList.get(0), BgtWageApplicationListVO.class));
|
||||
BigDecimal taskAuditAmount = BigDecimal.ZERO;
|
||||
BigDecimal taskApplyAmount= BigDecimal.ZERO;
|
||||
for (BgtWageApplication wage : wageList) {
|
||||
|
@ -150,8 +150,10 @@ public class FbsUserServiceImpl extends ServicePlusImpl<FbsUserMapper, FbsUser>
|
||||
@Override
|
||||
public FbsUser selectUserByUserId(Long userId) {
|
||||
FbsUser fbsUser = baseMapper.selectOne(new LambdaQueryWrapper<FbsUser>().eq(FbsUser::getUserId, userId));
|
||||
Company byId = companyService.getById(fbsUser.getCompanyId());
|
||||
fbsUser.setCompanyName(byId.getCompanyName());
|
||||
if(fbsUser.getCompanyId() !=null){
|
||||
Company byId = companyService.getById(fbsUser.getCompanyId());
|
||||
fbsUser.setCompanyName(byId.getCompanyName());
|
||||
}
|
||||
return fbsUser;
|
||||
}
|
||||
|
||||
|
@ -173,6 +173,9 @@ public class BusinessTask
|
||||
public void workCardShortage(){
|
||||
//1、获取所有正在进行中的任务
|
||||
List<FbsProjectTask> ongoingTask = iFbsProjectTaskService.findOngoingTask();
|
||||
if(CollectionUtil.isEmpty(ongoingTask)){
|
||||
return;
|
||||
}
|
||||
//2、获取所有招工信息
|
||||
List<Long> taskIds = new ArrayList<>();
|
||||
for (FbsProjectTask fbsProjectTask : ongoingTask) {
|
||||
@ -247,6 +250,9 @@ public class BusinessTask
|
||||
public void missingCard(){
|
||||
//1、获取所有正在进行中的任务
|
||||
List<FbsProjectTask> ongoingTask = iFbsProjectTaskService.findOngoingTask();
|
||||
if(CollectionUtil.isEmpty(ongoingTask)){
|
||||
return;
|
||||
}
|
||||
//2、获取所有招工信息
|
||||
List<Long> taskIds = new ArrayList<>();
|
||||
for (FbsProjectTask fbsProjectTask : ongoingTask) {
|
||||
|
@ -1,9 +1,12 @@
|
||||
package com.ruoyi.zbf.domain.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@ApiModel("总包方项目详情")
|
||||
public class ZbfProjectDetailVO {
|
||||
@ -35,4 +38,10 @@ public class ZbfProjectDetailVO {
|
||||
@ApiModelProperty("项目状态(0-未开工,1-已开工,2已竣工,3已停工)")
|
||||
private String projectStatus;
|
||||
|
||||
@ApiModelProperty("创建时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
private String remark;
|
||||
}
|
||||
|
@ -197,4 +197,13 @@ public interface IZbfProjectService extends IServicePlus<ZbfProject> {
|
||||
*/
|
||||
TableDataInfo<ZbfProject> zbfSwitchList(ZbfProjectSwitchListDTO dto);
|
||||
|
||||
/**
|
||||
* 总包方完成项目前检查
|
||||
*/
|
||||
Boolean checkBeforeComplete(Long projectId);
|
||||
|
||||
/**
|
||||
* 总包方完成项目提醒消息
|
||||
*/
|
||||
Boolean sendRemindMessage(Long projectId);
|
||||
}
|
||||
|
@ -79,4 +79,9 @@ public interface IZbfProjectSubcontractingApplyService extends IServicePlus<ZbfP
|
||||
* 分包商取消项目分包申请
|
||||
*/
|
||||
Boolean cancel(Long subId);
|
||||
|
||||
/**
|
||||
* 总包方获取分包申请人数
|
||||
*/
|
||||
Integer getApplyNum(Long subId);
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ 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.domain.BgtProjectRecruitApply;
|
||||
import com.ruoyi.bgt.domain.BgtProjectTaskProgress;
|
||||
import com.ruoyi.bgt.domain.BgtWageApplication;
|
||||
@ -20,13 +21,16 @@ import com.ruoyi.common.enums.RecruitApplyStatus;
|
||||
import com.ruoyi.common.enums.SubcontractingApplyStatus;
|
||||
import com.ruoyi.common.exception.BaseException;
|
||||
import com.ruoyi.common.util.DataUtil;
|
||||
import com.ruoyi.common.util.ValidUtil;
|
||||
import com.ruoyi.common.utils.PageUtils;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.fbs.domain.FbsMessage;
|
||||
import com.ruoyi.fbs.domain.FbsProjectTask;
|
||||
import com.ruoyi.fbs.domain.FbsWageApplication;
|
||||
import com.ruoyi.fbs.domain.dto.FbsProgressListDTO;
|
||||
import com.ruoyi.fbs.domain.dto.FbsProjectListDTO;
|
||||
import com.ruoyi.fbs.domain.vo.*;
|
||||
import com.ruoyi.fbs.service.IFbsMessageService;
|
||||
import com.ruoyi.fbs.service.IFbsProjectTaskService;
|
||||
import com.ruoyi.fbs.service.IFbsWageApplicationService;
|
||||
import com.ruoyi.wgz.domain.WgzPayCalculation;
|
||||
@ -51,6 +55,14 @@ import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.ruoyi.common.constants.BgtMessageConstant.HEADLINE;
|
||||
import static com.ruoyi.common.constants.BgtMessageConstant.SUBHEADING;
|
||||
import static com.ruoyi.common.constants.FbsMessageConstant.FBS_LARGE_OTHER;
|
||||
import static com.ruoyi.common.constants.FbsMessageConstant.FBS_SMALL_SYSTEM;
|
||||
import static com.ruoyi.common.constants.WgzAndBgtMessageConstant.*;
|
||||
import static com.ruoyi.common.constants.ZbfMessageConstant.ZBF_REMIND;
|
||||
import static com.ruoyi.common.constants.ZbfMessageConstant.zbfMessage;
|
||||
|
||||
/**
|
||||
* 总包方项目Service业务层处理
|
||||
*
|
||||
@ -82,6 +94,8 @@ public class ZbfProjectServiceImpl extends ServicePlusImpl<ZbfProjectMapper, Zbf
|
||||
private IWgzPayCalculationService wgzPayCalculationService;
|
||||
@Autowired
|
||||
private IZbfUserService zbfUserService;
|
||||
@Autowired
|
||||
private IFbsMessageService fbsMessageService;
|
||||
|
||||
@Override
|
||||
public ZbfProject queryById(Long id) {
|
||||
@ -584,6 +598,12 @@ public class ZbfProjectServiceImpl extends ServicePlusImpl<ZbfProjectMapper, Zbf
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean add(ZbfProjectAddDTO dto) {
|
||||
if (!ValidUtil.verifyCreditCode(dto.getCreditCode())) {
|
||||
throw new BaseException("统一社会信用代码格式不正确");
|
||||
}
|
||||
if (!ValidUtil.isValidChineseMobile(dto.getContactPhone())) {
|
||||
throw new BaseException("手机号格式不正确");
|
||||
}
|
||||
|
||||
//校验
|
||||
Long appUserId = SecurityUtils.getAppUserId();
|
||||
@ -615,6 +635,12 @@ public class ZbfProjectServiceImpl extends ServicePlusImpl<ZbfProjectMapper, Zbf
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean edit(ZbfProjectAddDTO dto) {
|
||||
if (!ValidUtil.verifyCreditCode(dto.getCreditCode())) {
|
||||
throw new BaseException("统一社会信用代码格式不正确");
|
||||
}
|
||||
if (!ValidUtil.isValidChineseMobile(dto.getContactPhone())) {
|
||||
throw new BaseException("手机号格式不正确");
|
||||
}
|
||||
|
||||
//校验
|
||||
//获取项目下的所有有人申请的分包
|
||||
@ -647,7 +673,7 @@ public class ZbfProjectServiceImpl extends ServicePlusImpl<ZbfProjectMapper, Zbf
|
||||
sectionUpdateIds.add(section.getId());
|
||||
}
|
||||
for (ZbfProjectSubcontractingAddDTO sub : section.getSubList()) {
|
||||
ZbfProjectSubcontracting projectSubcontracting = BeanUtil.copyProperties(sub, ZbfProjectSubcontracting.class, "id");
|
||||
ZbfProjectSubcontracting projectSubcontracting = BeanUtil.copyProperties(sub, ZbfProjectSubcontracting.class);
|
||||
projectSubcontracting.setProjectId(dto.getId());
|
||||
projectSubcontracting.setSectionId(projectSection.getId());
|
||||
if (sub.getId() == null) {
|
||||
@ -781,10 +807,9 @@ public class ZbfProjectServiceImpl extends ServicePlusImpl<ZbfProjectMapper, Zbf
|
||||
wrapper.eq(ZbfProject::getUserId, SecurityUtils.getAppUserId());
|
||||
List<ZbfProject> list = list(wrapper);
|
||||
zbfProjectCountVO.setAllCount(list.size());
|
||||
long startCount = list.stream().filter(zbfProject -> StrUtil.equals(zbfProject.getProjectStatus(), ProjectStatus.START.getCode())).count();
|
||||
long completeCount = list.stream().filter(zbfProject -> StrUtil.equals(zbfProject.getProjectStatus(), ProjectStatus.COMPLETE.getCode())).count();
|
||||
zbfProjectCountVO.setStartCount((int) startCount);
|
||||
zbfProjectCountVO.setCompleteCount((int) completeCount);
|
||||
zbfProjectCountVO.setStartCount(zbfProjectCountVO.getAllCount()-zbfProjectCountVO.getCompleteCount());
|
||||
return zbfProjectCountVO;
|
||||
}
|
||||
|
||||
@ -958,4 +983,47 @@ public class ZbfProjectServiceImpl extends ServicePlusImpl<ZbfProjectMapper, Zbf
|
||||
Page<ZbfProject> result = page(PageUtils.buildPage(), wrapper);
|
||||
return PageUtils.buildDataInfo(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean checkBeforeComplete(Long projectId) {
|
||||
List<FbsProjectTask> list = fbsProjectTaskService.list(Wrappers.<FbsProjectTask>lambdaQuery()
|
||||
.eq(FbsProjectTask::getProjectId, projectId)
|
||||
.ne(FbsProjectTask::getStatus,ProjectStatus.COMPLETE.getCode())
|
||||
);
|
||||
return CollectionUtil.isEmpty(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean sendRemindMessage(Long projectId) {
|
||||
List<FbsProjectTask> list = fbsProjectTaskService.list(Wrappers.<FbsProjectTask>lambdaQuery()
|
||||
.eq(FbsProjectTask::getProjectId, projectId)
|
||||
.ne(FbsProjectTask::getStatus,ProjectStatus.COMPLETE.getCode())
|
||||
);
|
||||
if (CollectionUtil.isEmpty(list)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
ArrayList<FbsMessage> messages = new ArrayList<>();
|
||||
for (FbsProjectTask task : list) {
|
||||
//总包方发消息到分包商
|
||||
HashMap<String, String> zmp = new HashMap<>();
|
||||
zmp.put("projectName", task.getTaskName());
|
||||
zmp.put("auditor", SecurityUtils.getUsername());
|
||||
Map<String, String> zmap = zbfMessage(zmp, ZBF_REMIND, true);
|
||||
FbsMessage fbsMessage = new FbsMessage()
|
||||
.setSenderType(USERTYPE_ZBF)
|
||||
.setSenderId(SecurityUtils.getAppUserId())
|
||||
.setRecipientType(USERTYPE_FBS)
|
||||
.setRecipientId(task.getCreateId())
|
||||
.setHeadline(zmap.get(HEADLINE))
|
||||
.setSubheading(zmap.get(SUBHEADING))
|
||||
.setTableId(task.getId())
|
||||
.setTableName(SqlHelper.table(FbsProjectTask.class).getTableName())
|
||||
.setMessageLargeType(FBS_LARGE_OTHER)
|
||||
.setMessageSmallType(FBS_SMALL_SYSTEM)
|
||||
.setIsOperation(OPERATION_NO);
|
||||
messages.add(fbsMessage);
|
||||
}
|
||||
return fbsMessageService.saveBatch(messages);
|
||||
}
|
||||
}
|
||||
|
@ -289,4 +289,13 @@ public class ZbfProjectSubcontractingApplyServiceImpl extends ServicePlusImpl<Zb
|
||||
zbfMessageService.operation(USERTYPE_FBS, SecurityUtils.getAppUserId(), USERTYPE_ZBF, project.getUserId(), zbfProjectSubcontractingApply.getId(),SqlHelper.table(ZbfProjectSubcontractingApply.class).getTableName());
|
||||
return updateById(zbfProjectSubcontractingApply);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getApplyNum(Long subId) {
|
||||
LambdaUpdateWrapper<ZbfProjectSubcontractingApply> wrapper = Wrappers.<ZbfProjectSubcontractingApply>lambdaUpdate()
|
||||
.eq(ZbfProjectSubcontractingApply::getSubId, subId)
|
||||
.eq(ZbfProjectSubcontractingApply::getApplyStatus, SubcontractingApplyStatus.APPLY.getCode());
|
||||
List<ZbfProjectSubcontractingApply> list = list(wrapper);
|
||||
return list.size();
|
||||
}
|
||||
}
|
||||
|
@ -96,7 +96,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
project_img,
|
||||
project_status
|
||||
FROM zbf_project zp
|
||||
where zp.id in (select zpsa.project_id from zbf_project_subcontracting_apply zpsa where zpsa.fbs_user_id = #{dto.fbsUserId})
|
||||
where zp.id in (select zpsa.project_id from zbf_project_subcontracting_apply zpsa
|
||||
where zpsa.fbs_user_id = #{dto.fbsUserId} and zpsa.apply_status !='3')
|
||||
order by zp.id desc
|
||||
</select>
|
||||
|
||||
|
Reference in New Issue
Block a user