项目对接

This commit is contained in:
lcj
2025-12-08 19:10:04 +08:00
parent bb8c951651
commit f62c542684
12 changed files with 239 additions and 205 deletions

View File

@ -54,3 +54,4 @@ docs
/file /file
.idea/ .idea/
chat-memory/ chat-memory/
queries/

View File

@ -1,37 +1,28 @@
package org.dromara.message.controller; package org.dromara.message.controller;
import java.util.List;
import java.util.Objects;
import cn.hutool.core.bean.BeanUtil;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.common.satoken.utils.LoginHelper; import cn.hutool.core.bean.BeanUtil;
import org.dromara.message.domain.bo.MsgConfigAddReq; import jakarta.validation.constraints.NotEmpty;
import org.dromara.message.domain.bo.MsgConfigEditReq; import jakarta.validation.constraints.NotNull;
import org.dromara.system.domain.bo.SysDeptBo; import lombok.RequiredArgsConstructor;
import org.dromara.system.domain.vo.SysDeptVo;
import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.service.ISysDeptService;
import org.dromara.system.service.ISysUserService;
import org.springframework.boot.actuate.beans.BeansEndpoint;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup; import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType; import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.message.domain.vo.MsgConfigVo;
import org.dromara.message.domain.bo.MsgConfigBo;
import org.dromara.message.service.IMsgConfigService;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.message.domain.bo.MsgConfigAddReq;
import org.dromara.message.domain.bo.MsgConfigBo;
import org.dromara.message.domain.bo.MsgConfigEditReq;
import org.dromara.message.domain.vo.MsgConfigVo;
import org.dromara.message.service.IMsgConfigService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/** /**
* 消息配置 * 消息配置
@ -46,21 +37,6 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
public class MsgConfigController extends BaseController { public class MsgConfigController extends BaseController {
private final IMsgConfigService msgConfigService; private final IMsgConfigService msgConfigService;
private final ISysUserService userService;
private final ISysDeptService deptService;
/**
* 获取当前用户所在上级部门ID
*/
@SaCheckPermission("message:config:allUsersOfTheDepartment")
@GetMapping("/allUsersOfTheDepartment")
public R<SysDeptBo> allUsersOfTheDepartment() {
//获取当前用户的上级部门
Long deptId = Objects.requireNonNull(LoginHelper.getLoginUser()).getDeptId();
SysDeptBo bm = deptService.selectDeptByIdBo(deptId);
//从顶级往下推两个部门
return R.ok(bm);
}
/** /**
* 查询消息配置列表 * 查询消息配置列表
@ -79,7 +55,7 @@ public class MsgConfigController extends BaseController {
@SaCheckPermission("message:config:query") @SaCheckPermission("message:config:query")
@GetMapping("/{id}") @GetMapping("/{id}")
public R<MsgConfigVo> getInfo(@NotNull(message = "主键不能为空") public R<MsgConfigVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) { @PathVariable Long id) {
return R.ok(msgConfigService.queryById(id)); return R.ok(msgConfigService.queryById(id));
} }

View File

@ -1,36 +1,35 @@
package org.dromara.project.controller; package org.dromara.project.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.contractor.domain.dto.contractor.SubContractorQueryReq; import jakarta.servlet.http.HttpServletResponse;
import org.dromara.contractor.domain.vo.contractor.SubContractorVo; import jakarta.validation.constraints.NotEmpty;
import org.dromara.contractor.service.ISubContractorService; import jakarta.validation.constraints.NotNull;
import org.dromara.project.domain.dto.attendance.*; import lombok.RequiredArgsConstructor;
import org.dromara.project.domain.dto.projectteam.BusProjectTeamQueryReq;
import org.dromara.project.domain.vo.attendance.*;
import org.dromara.project.domain.vo.projectteam.BusProjectTeamVo;
import org.dromara.project.service.IBusProjectTeamService;
import org.dromara.system.domain.dto.FbUserListDto;
import org.dromara.system.domain.vo.SysUserVo;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup; import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.project.domain.vo.BusAttendanceVo; import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.project.domain.bo.BusAttendanceBo; import org.dromara.common.log.annotation.Log;
import org.dromara.project.service.IBusAttendanceService; import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.contractor.domain.dto.contractor.SubContractorQueryReq;
import org.dromara.contractor.domain.vo.contractor.SubContractorVo;
import org.dromara.contractor.service.ISubContractorService;
import org.dromara.project.domain.bo.BusAttendanceBo;
import org.dromara.project.domain.dto.attendance.*;
import org.dromara.project.domain.dto.projectteam.BusProjectTeamQueryReq;
import org.dromara.project.domain.vo.BusAttendanceVo;
import org.dromara.project.domain.vo.attendance.*;
import org.dromara.project.domain.vo.projectteam.BusProjectTeamVo;
import org.dromara.project.service.IBusAttendanceService;
import org.dromara.project.service.IBusProjectTeamService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/** /**
* 考勤 * 考勤
@ -92,7 +91,7 @@ public class BusAttendanceController extends BaseController {
@SaCheckPermission("project:attendance:query") @SaCheckPermission("project:attendance:query")
@GetMapping("/{id}") @GetMapping("/{id}")
public R<BusAttendanceVo> getInfo(@NotNull(message = "主键不能为空") public R<BusAttendanceVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) { @PathVariable Long id) {
return R.ok(busAttendanceService.queryById(id)); return R.ok(busAttendanceService.queryById(id));
} }
@ -138,6 +137,7 @@ public class BusAttendanceController extends BaseController {
public R<List<BusAttendanceClockDateForTwoWeekVo>> getClockDateForTwoWeekList(TwoWeekDto dto) { public R<List<BusAttendanceClockDateForTwoWeekVo>> getClockDateForTwoWeekList(TwoWeekDto dto) {
return R.ok(busAttendanceService.getClockDateForTwoWeekList(dto)); return R.ok(busAttendanceService.getClockDateForTwoWeekList(dto));
} }
/** /**
* 查询项目施工人员当天考勤状况 * 查询项目施工人员当天考勤状况
*/ */
@ -150,8 +150,8 @@ public class BusAttendanceController extends BaseController {
* 查询当天出勤人员 * 查询当天出勤人员
*/ */
@GetMapping("/list/attendanceUser") @GetMapping("/list/attendanceUser")
public TableDataInfo<AttendanceTodayUserVo> getTodayAttendanceUser(TodayUserDto dto, PageQuery pageQuery) { public TableDataInfo<AttendanceTodayUserVo> getTodayAttendanceUser(TodayUserDto dto, PageQuery pageQuery) {
return busAttendanceService.getTodayAttendanceUser(dto,pageQuery); return busAttendanceService.getTodayAttendanceUser(dto, pageQuery);
} }
/** /**
@ -209,8 +209,8 @@ public class BusAttendanceController extends BaseController {
* 查询分包当天出勤人员 * 查询分包当天出勤人员
*/ */
@GetMapping("/sub/list/attendanceUser") @GetMapping("/sub/list/attendanceUser")
public TableDataInfo<SubAttendanceTodayUserVo> getSubTodayAttendanceUser(SubTodayUserDto dto, PageQuery pageQuery) { public TableDataInfo<SubAttendanceTodayUserVo> getSubTodayAttendanceUser(SubTodayUserDto dto, PageQuery pageQuery) {
return busAttendanceService.getSubTodayAttendanceUser(dto,pageQuery); return busAttendanceService.getSubTodayAttendanceUser(dto, pageQuery);
} }
/** /**

View File

@ -168,4 +168,9 @@ public class BusProject extends BaseEntity {
*/ */
private String position; private String position;
/**
* xzd项目id
*/
private Long xzdProjectId;
} }

View File

@ -140,4 +140,9 @@ public class BusProjectCreateReq implements Serializable {
* 所属部门列表 * 所属部门列表
*/ */
private List<Long> deptIds; private List<Long> deptIds;
/**
* xzd项目id
*/
private Long xzdProjectId;
} }

View File

@ -223,4 +223,9 @@ public class BusProjectVo implements Serializable {
*/ */
private List<SysRoleVo> roleVos; private List<SysRoleVo> roleVos;
/**
* xzd项目id
*/
private Long xzdProjectId;
} }

View File

@ -99,6 +99,7 @@ public class MqDelayTaskServiceImpl extends ServiceImpl<MqDelayTaskMapper, MqDel
task.setStatus(2); task.setStatus(2);
this.updateById(task); this.updateById(task);
} catch (Exception e) { } catch (Exception e) {
log.error("执行任务失败:{}", e.getMessage(), e);
// 更新失败状态 // 更新失败状态
task.setRetryCount(task.getRetryCount() + 1); task.setRetryCount(task.getRetryCount() + 1);
task.setFailReason(e.getMessage()); task.setFailReason(e.getMessage());

View File

@ -14,8 +14,12 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.sse.dto.SseMessageDto; import org.dromara.common.sse.dto.SseMessageDto;
import org.dromara.common.sse.utils.SseMessageUtils; import org.dromara.common.sse.utils.SseMessageUtils;
import org.dromara.rabbitmq.domain.MqDelayTask;
import org.dromara.rabbitmq.enums.MqDelayTaskTypeEnum;
import org.dromara.rabbitmq.service.IMqDelayTaskService;
import org.dromara.safety.domain.HazardHiddenDanger; import org.dromara.safety.domain.HazardHiddenDanger;
import org.dromara.safety.domain.HazardHiddenDangerRectify; import org.dromara.safety.domain.HazardHiddenDangerRectify;
import org.dromara.safety.domain.HazardRule;
import org.dromara.safety.domain.bo.HazardHiddenDangerBo; import org.dromara.safety.domain.bo.HazardHiddenDangerBo;
import org.dromara.safety.domain.bo.HazardHiddenDangerRectifyBo; import org.dromara.safety.domain.bo.HazardHiddenDangerRectifyBo;
import org.dromara.safety.domain.dto.hiddendangerrectify.HazardHiddenDangerRectifyRectificationReq; import org.dromara.safety.domain.dto.hiddendangerrectify.HazardHiddenDangerRectifyRectificationReq;
@ -28,6 +32,7 @@ import org.dromara.safety.mapper.HazardHiddenDangerRectifyMapper;
import org.dromara.safety.service.IHazardHiddenDangerRectifyService; import org.dromara.safety.service.IHazardHiddenDangerRectifyService;
import org.dromara.safety.service.IHazardHiddenDangerService; import org.dromara.safety.service.IHazardHiddenDangerService;
import org.dromara.safety.service.IHazardRuleNotifyObjectService; import org.dromara.safety.service.IHazardRuleNotifyObjectService;
import org.dromara.safety.service.IHazardRuleService;
import org.dromara.websocket.ChatServerHandler; import org.dromara.websocket.ChatServerHandler;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -57,6 +62,10 @@ public class HazardHiddenDangerRectifyServiceImpl extends ServiceImpl<HazardHidd
private final IHazardRuleNotifyObjectService hazardRuleNotifyObjectService; private final IHazardRuleNotifyObjectService hazardRuleNotifyObjectService;
private final IHazardRuleService hazardRuleService;
private final IMqDelayTaskService mqDelayTaskService;
/** /**
* 查询隐患整改情况 * 查询隐患整改情况
* *
@ -323,33 +332,62 @@ public class HazardHiddenDangerRectifyServiceImpl extends ServiceImpl<HazardHidd
if (!HazardHiddenDanger.RECTIFY.equals(hiddenDanger.getStatus())) { if (!HazardHiddenDanger.RECTIFY.equals(hiddenDanger.getStatus())) {
return; return;
} }
// 发送消息 // 隐患等级
String dangerCode = hiddenDanger.getDangerCode(); HazardRule rule = hazardRuleService.getById(hiddenDanger.getDangerLevelId());
Long rectifyUserId = hiddenDanger.getRectifyUserId(); String notifyMethod = rule.getNotifyMethod();
Long projectId = hiddenDanger.getProjectId(); if (notifyMethod.equals("1")) {
String titleRectify = "您的安全隐患工单[" + dangerCode + "]已超时,请及时处理!"; // 通知领导
try { } else {
chatServerHandler.sendSystemMessageToUser(rectifyUserId, titleRectify, "2"); // 发送消息
SseMessageUtils.sendMessage(rectifyUserId, titleRectify); String dangerCode = hiddenDanger.getDangerCode();
} catch (Exception e) { Long rectifyUserId = hiddenDanger.getRectifyUserId();
log.error("异步发送系统消息失败用户ID: {}, 消息: {}", rectifyUserId, titleRectify, e); Long projectId = hiddenDanger.getProjectId();
} String titleRectify = "您的安全隐患工单[" + dangerCode + "]已超时,请及时处理!";
// 发送给需要通知的对象
Set<Long> userIds = hazardRuleNotifyObjectService.queryNotifyObjectIds(hiddenDanger.getDangerLevelId(), projectId);
SseMessageDto sseDto = new SseMessageDto();
String title = "安全隐患工单[" + dangerCode + "]未进行整改,请及时关注!";
for (Long userId : userIds) {
try { try {
chatServerHandler.sendSystemMessageToUser(userId, title, "2"); chatServerHandler.sendSystemMessageToUser(rectifyUserId, titleRectify, "2");
SseMessageUtils.sendMessage(rectifyUserId, titleRectify);
} catch (Exception e) { } catch (Exception e) {
log.error("异步发送系统消息失败用户ID: {}, 消息: {}", userId, title, e); log.error("异步发送系统消息失败用户ID: {}, 消息: {}", rectifyUserId, titleRectify, e);
}
// 发送给需要通知的对象
Set<Long> userIds = hazardRuleNotifyObjectService.queryNotifyObjectIds(hiddenDanger.getDangerLevelId(), projectId);
SseMessageDto sseDto = new SseMessageDto();
String title = "安全隐患工单[" + dangerCode + "]未进行整改,请及时关注!";
for (Long userId : userIds) {
try {
chatServerHandler.sendSystemMessageToUser(userId, title, "2");
} catch (Exception e) {
log.error("异步发送系统消息失败用户ID: {}, 消息: {}", userId, title, e);
}
}
sseDto.setUserIds(userIds.stream().toList());
sseDto.setMessage(title);
sseDto.setRoute("");
sseDto.setProjectId(projectId);
sseDto.setIsRecord(true);
SseMessageUtils.publishMessage(sseDto);
// 重复整改
if (notifyMethod.equals("2")) {
// 获取通知时间
LocalDateTime executeTime = LocalDateTime.now();
String responseUnit = rule.getResponseUnit();
switch (responseUnit) {
case "3" -> executeTime = executeTime.plusDays(rule.getResponseTime());
case "2" -> executeTime = executeTime.plusHours(rule.getResponseTime());
case "1" -> executeTime = executeTime.plusMinutes(rule.getResponseTime());
}
// 发送整改期限数据到消息队列
MqDelayTask task = new MqDelayTask();
task.setBizType(MqDelayTaskTypeEnum.HIDDEN_DANGER.getType());
task.setBizId(bizId);
task.setExecuteTime(executeTime);
try {
mqDelayTaskService.addDelayTask(task);
} catch (Exception e) {
log.error("添加延迟任务失败,延迟任务: {}", task, e);
throw new ServiceException("添加延迟任务失败");
}
} }
} }
sseDto.setUserIds(userIds.stream().toList());
sseDto.setMessage(title);
sseDto.setRoute("");
sseDto.setProjectId(projectId);
sseDto.setIsRecord(true);
SseMessageUtils.publishMessage(sseDto);
} }
} }

View File

@ -1,7 +1,6 @@
package org.dromara.system.service; package org.dromara.system.service;
import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.Tree;
import org.dromara.system.domain.SysDept;
import org.dromara.system.domain.bo.SysDeptBo; import org.dromara.system.domain.bo.SysDeptBo;
import org.dromara.system.domain.vo.SysDeptVo; import org.dromara.system.domain.vo.SysDeptVo;
@ -60,13 +59,6 @@ public interface ISysDeptService {
*/ */
SysDeptVo selectDeptById(Long deptId); SysDeptVo selectDeptById(Long deptId);
/**
* 根据部门ID获取到顶级部门
*
* @return 部门信息
*/
SysDeptBo selectDeptByIdBo(Long deptId);
/** /**
* 根据部门ID查询所属项目ID列表 * 根据部门ID查询所属项目ID列表
* *

View File

@ -35,7 +35,6 @@ import org.dromara.system.mapper.SysPostMapper;
import org.dromara.system.mapper.SysRoleMapper; import org.dromara.system.mapper.SysRoleMapper;
import org.dromara.system.mapper.SysUserMapper; import org.dromara.system.mapper.SysUserMapper;
import org.dromara.system.service.ISysDeptService; import org.dromara.system.service.ISysDeptService;
import org.dromara.system.service.ISysRoleService;
import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Cacheable;
import org.springframework.cache.annotation.Caching; import org.springframework.cache.annotation.Caching;
@ -60,8 +59,6 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
private final SysUserMapper userMapper; private final SysUserMapper userMapper;
private final SysPostMapper postMapper; private final SysPostMapper postMapper;
private final ISysRoleService roleService;
/** /**
* 查询部门管理数据 * 查询部门管理数据
* *
@ -220,16 +217,6 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
return dept; return dept;
} }
/**
* 根据部门ID获取到顶级部门
*
* @return 部门信息
*/
@Override
public SysDeptBo selectDeptByIdBo(Long deptId) {
return null;
}
/** /**
* 根据部门ID查询所属项目ID列表 * 根据部门ID查询所属项目ID列表
* *

View File

@ -1,7 +1,10 @@
package org.dromara.xzd.biddingManagement.biaoqianlixiang.service.impl; package org.dromara.xzd.biddingManagement.biaoqianlixiang.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.event.ProcessDeleteEvent; import org.dromara.common.core.domain.event.ProcessDeleteEvent;
import org.dromara.common.core.domain.event.ProcessEvent; import org.dromara.common.core.domain.event.ProcessEvent;
@ -9,19 +12,20 @@ import org.dromara.common.core.domain.event.ProcessTaskEvent;
import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.common.utils.BatchNumberGenerator; import org.dromara.common.utils.BatchNumberGenerator;
import org.dromara.system.service.impl.SysOssServiceImpl; import org.dromara.system.service.impl.SysOssServiceImpl;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBidPreProject;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBqlxProjectInfo; import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBqlxProjectInfo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdProjectRiskAssessment; import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.bo.XzdBidPreProjectBo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.bo.XzdBqlxProjectInfoBo; import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.bo.XzdBqlxProjectInfoBo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.dto.BiddingManagementDto; import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.dto.BiddingManagementDto;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.dto.QuerBiddingManagementDto; import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.dto.QuerBiddingManagementDto;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.QuerListXzdBidPreVo; import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.QuerListXzdBidPreVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.QueryListXzdVo; import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.QueryListXzdVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBidPreProjectVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBqlxProjectInfoVo; import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBqlxProjectInfoVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.mapper.XzdBidPreProjectMapper;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.service.IXzdBidPreProjectService;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.service.IXzdBqlxProjectInfoService; import org.dromara.xzd.biddingManagement.biaoqianlixiang.service.IXzdBqlxProjectInfoService;
import org.dromara.xzd.biddingManagement.biddingDocument.domain.XzdBiddingFileEstimate; import org.dromara.xzd.biddingManagement.biddingDocument.domain.XzdBiddingFileEstimate;
import org.dromara.xzd.biddingManagement.biddingDocument.service.IXzdBiddingFileEstimateService; import org.dromara.xzd.biddingManagement.biddingDocument.service.IXzdBiddingFileEstimateService;
@ -41,15 +45,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.bo.XzdBidPreProjectBo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBidPreProjectVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBidPreProject;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.mapper.XzdBidPreProjectMapper;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.service.IXzdBidPreProjectService;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -69,7 +66,6 @@ public class XzdBidPreProjectServiceImpl extends ServiceImpl<XzdBidPreProjectMap
private final IXzdBqlxProjectInfoService iXzdBqlxProjectInfoService; private final IXzdBqlxProjectInfoService iXzdBqlxProjectInfoService;
private final AreaUtil areaUtil; private final AreaUtil areaUtil;
private final SysOssServiceImpl sysOssService; private final SysOssServiceImpl sysOssService;
@ -77,34 +73,32 @@ public class XzdBidPreProjectServiceImpl extends ServiceImpl<XzdBidPreProjectMap
//招标文件审估 //招标文件审估
@Lazy @Lazy
@Autowired @Autowired
private IXzdBiddingFileEstimateService xzdBiddingFileEstimateService; private IXzdBiddingFileEstimateService xzdBiddingFileEstimateService;
//投标文件 //投标文件
@Lazy @Lazy
@Autowired @Autowired
private IXzdBiddingDocumentService xzdBiddingDocumentService; private IXzdBiddingDocumentService xzdBiddingDocumentService;
//投标保证金缴纳 //投标保证金缴纳
@Lazy @Lazy
@Autowired @Autowired
private IXzdBidDepositPaymentService xzdBidDepositPaymentService; private IXzdBidDepositPaymentService xzdBidDepositPaymentService;
//投标保证金收回 //投标保证金收回
@Lazy @Lazy
@Autowired @Autowired
private IXzdBidDepositRecoveryService xzdBidDepositRecoveryService; private IXzdBidDepositRecoveryService xzdBidDepositRecoveryService;
//标后分析 //标后分析
@Lazy @Lazy
@Autowired @Autowired
private IXzdPostBidAnalysisService xzdPostBidAnalysisService; private IXzdPostBidAnalysisService xzdPostBidAnalysisService;
//招标代理服务费支付申请 //招标代理服务费支付申请
@Lazy @Lazy
@Autowired @Autowired
private IXzdBiddingAgencyFeePaymentService xzdBiddingAgencyFeePaymentService; private IXzdBiddingAgencyFeePaymentService xzdBiddingAgencyFeePaymentService;
/** /**
* 查询标前立项 * 查询标前立项
@ -113,13 +107,13 @@ public class XzdBidPreProjectServiceImpl extends ServiceImpl<XzdBidPreProjectMap
* @return 标前立项 * @return 标前立项
*/ */
@Override @Override
public QuerListXzdBidPreVo queryById(Long id){ public QuerListXzdBidPreVo queryById(Long id) {
QuerListXzdBidPreVo querListXzdBidPreVo = new QuerListXzdBidPreVo(); QuerListXzdBidPreVo querListXzdBidPreVo = new QuerListXzdBidPreVo();
XzdBidPreProjectVo xzdBidPreProjectVo = baseMapper.selectVoById(id); XzdBidPreProjectVo xzdBidPreProjectVo = baseMapper.selectVoById(id);
XzdBqlxProjectInfo xzdBqlxProjectInfo = iXzdBqlxProjectInfoService.getBaseMapper().selectOne(new LambdaQueryWrapper<>(XzdBqlxProjectInfo.class).eq(XzdBqlxProjectInfo::getBidPreProjectId, id)); XzdBqlxProjectInfo xzdBqlxProjectInfo = iXzdBqlxProjectInfoService.getBaseMapper().selectOne(new LambdaQueryWrapper<>(XzdBqlxProjectInfo.class).eq(XzdBqlxProjectInfo::getBidPreProjectId, id));
XzdBqlxProjectInfoVo res = new XzdBqlxProjectInfoVo(); XzdBqlxProjectInfoVo res = new XzdBqlxProjectInfoVo();
if (xzdBqlxProjectInfo != null){ if (xzdBqlxProjectInfo != null) {
BeanUtils.copyProperties(xzdBqlxProjectInfo, res); BeanUtils.copyProperties(xzdBqlxProjectInfo, res);
} }
querListXzdBidPreVo.setXzdBqlxProjectInfoVo(res); querListXzdBidPreVo.setXzdBqlxProjectInfoVo(res);
@ -141,12 +135,12 @@ public class XzdBidPreProjectServiceImpl extends ServiceImpl<XzdBidPreProjectMap
QueryListXzdVo queryListXzdVo = new QueryListXzdVo(); QueryListXzdVo queryListXzdVo = new QueryListXzdVo();
if (pageQuery.getPageNum() != null && pageQuery.getPageSize() != null){ if (pageQuery.getPageNum() != null && pageQuery.getPageSize() != null) {
bo.setNum((pageQuery.getPageNum() - 1 ) * pageQuery.getPageSize() ); bo.setNum((pageQuery.getPageNum() - 1) * pageQuery.getPageSize());
} }
List<QuerListXzdBidPreVo> list = baseMapper.queryPageListBy(bo,pageQuery.getPageSize()); List<QuerListXzdBidPreVo> list = baseMapper.queryPageListBy(bo, pageQuery.getPageSize());
Integer res = baseMapper.queryPageListByNum(bo,pageQuery.getPageSize()); Integer res = baseMapper.queryPageListByNum(bo, pageQuery.getPageSize());
queryListXzdVo.setList(list); queryListXzdVo.setList(list);
@ -203,19 +197,19 @@ public class XzdBidPreProjectServiceImpl extends ServiceImpl<XzdBidPreProjectMap
public Boolean insertByBo(BiddingManagementDto bo) { public Boolean insertByBo(BiddingManagementDto bo) {
String banBen = BatchNumberGenerator.generateBatchNumber("BQLX-"); String banBen = BatchNumberGenerator.generateBatchNumber("BQLX-");
// 标前立项 // 标前立项
XzdBidPreProjectBo xzdBidPreProjectBo = bo.getXzdBidPreProjectBo(); XzdBidPreProjectBo xzdBidPreProjectBo = bo.getXzdBidPreProjectBo();
XzdBidPreProject xzdBidPreProject = new XzdBidPreProject(); XzdBidPreProject xzdBidPreProject = new XzdBidPreProject();
if (xzdBidPreProjectBo != null) { if (xzdBidPreProjectBo != null) {
BeanUtil.copyProperties(xzdBidPreProjectBo, xzdBidPreProject); BeanUtil.copyProperties(xzdBidPreProjectBo, xzdBidPreProject);
xzdBidPreProject.setProjectNumber(banBen); xzdBidPreProject.setProjectNumber(banBen);
baseMapper.insert(xzdBidPreProject); baseMapper.insert(xzdBidPreProject);
} }
//标前立项-项目信息 //标前立项-项目信息
XzdBqlxProjectInfoBo xzdBqlxProjectInfoBo = bo.getXzdBqlxProjectInfoBo(); XzdBqlxProjectInfoBo xzdBqlxProjectInfoBo = bo.getXzdBqlxProjectInfoBo();
xzdBqlxProjectInfoBo.setBidPreProjectId(xzdBidPreProject.getId()); xzdBqlxProjectInfoBo.setBidPreProjectId(xzdBidPreProject.getId());
iXzdBqlxProjectInfoService.insertByBo(xzdBqlxProjectInfoBo); iXzdBqlxProjectInfoService.insertByBo(xzdBqlxProjectInfoBo);
return true; return true;
@ -253,14 +247,13 @@ public class XzdBidPreProjectServiceImpl extends ServiceImpl<XzdBidPreProjectMap
iXzdBqlxProjectInfoService.saveOrUpdate(xzdBqlxProjectInfo); iXzdBqlxProjectInfoService.saveOrUpdate(xzdBqlxProjectInfo);
return true; return true;
} }
/** /**
* 保存前的数据校验 * 保存前的数据校验
*/ */
private void validEntityBeforeSave(XzdBidPreProject entity){ private void validEntityBeforeSave(XzdBidPreProject entity) {
//TODO 做一些数据校验,如唯一约束 //TODO 做一些数据校验,如唯一约束
} }
@ -275,7 +268,7 @@ public class XzdBidPreProjectServiceImpl extends ServiceImpl<XzdBidPreProjectMap
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){ if (isValid) {
} }
for (Long id : ids) { for (Long id : ids) {
@ -285,7 +278,7 @@ public class XzdBidPreProjectServiceImpl extends ServiceImpl<XzdBidPreProjectMap
if (l > 0) throw new ServiceException("招标文件审估已引用,不允许删除"); if (l > 0) throw new ServiceException("招标文件审估已引用,不允许删除");
//投标文件 //投标文件
l = xzdBiddingDocumentService.getBaseMapper().selectCount(new LambdaQueryWrapper<XzdBiddingDocument>().eq(XzdBiddingDocument::getProjectName, id)); l = xzdBiddingDocumentService.getBaseMapper().selectCount(new LambdaQueryWrapper<XzdBiddingDocument>().eq(XzdBiddingDocument::getProjectName, id));
if (l > 0) throw new ServiceException("投标文件已引用,不允许删除"); if (l > 0) throw new ServiceException("投标文件已引用,不允许删除");
//投标保证金缴纳 //投标保证金缴纳
@ -305,23 +298,22 @@ public class XzdBidPreProjectServiceImpl extends ServiceImpl<XzdBidPreProjectMap
if (l > 0) throw new ServiceException("招标代理服务费支付申请已引用,不允许删除"); if (l > 0) throw new ServiceException("招标代理服务费支付申请已引用,不允许删除");
// 删除附件 // 删除附件
if (!StringUtils.isEmpty(xzdBidPreProjectVo.getFileId())){ if (!StringUtils.isEmpty(xzdBidPreProjectVo.getFileId())) {
List<Long> collect = Arrays.stream(xzdBidPreProjectVo.getFileId().split(",")).map(item -> { List<Long> collect = Arrays.stream(xzdBidPreProjectVo.getFileId().split(",")).map(Long::parseLong).collect(Collectors.toList());
return Long.parseLong(item);
}).collect(Collectors.toList());
sysOssService.deleteWithValidByIds(collect, false); sysOssService.deleteWithValidByIds(collect, false);
} }
// 删除项目信息 // 删除项目信息
HashMap<String, Object> objectObjectHashMap = new HashMap<>(); HashMap<String, Object> objectObjectHashMap = new HashMap<>();
objectObjectHashMap.put("bid_pre_project_id",id); objectObjectHashMap.put("bid_pre_project_id", id);
iXzdBqlxProjectInfoService.removeByMap(objectObjectHashMap); iXzdBqlxProjectInfoService.removeByMap(objectObjectHashMap);
} }
return baseMapper.deleteByIds(ids) > 0; return baseMapper.deleteByIds(ids) > 0;
} }
/** /**
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等) * 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
* 正常使用只需#processEvent.flowCode=='leave1' * 正常使用只需#processEvent.flowCode=='leave1'
@ -329,7 +321,7 @@ public class XzdBidPreProjectServiceImpl extends ServiceImpl<XzdBidPreProjectMap
* *
* @param processEvent 参数 * @param processEvent 参数
*/ */
@org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('xzdbqlx')") @EventListener(condition = "#processEvent.flowCode.endsWith('xzdbqlx')")
public void processPlansHandlErequipmentList(ProcessEvent processEvent) { public void processPlansHandlErequipmentList(ProcessEvent processEvent) {
log.info("标前立项审核任务执行了{}", processEvent.toString()); log.info("标前立项审核任务执行了{}", processEvent.toString());
String id = processEvent.getBusinessId(); String id = processEvent.getBusinessId();
@ -351,7 +343,7 @@ public class XzdBidPreProjectServiceImpl extends ServiceImpl<XzdBidPreProjectMap
* *
* @param processTaskEvent 参数 * @param processTaskEvent 参数
*/ */
@org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('xzdbqlx')") @EventListener(condition = "#processTaskEvent.flowCode.endsWith('xzdbqlx')")
public void processTaskPlansHandlerEquipmentList(ProcessTaskEvent processTaskEvent) { public void processTaskPlansHandlerEquipmentList(ProcessTaskEvent processTaskEvent) {
log.info("标前立项审核任务创建了{}", processTaskEvent.toString()); log.info("标前立项审核任务创建了{}", processTaskEvent.toString());
} }

View File

@ -5,11 +5,13 @@ import cn.hutool.core.util.ObjectUtil;
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.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jakarta.annotation.Resource;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.event.ProcessDeleteEvent; import org.dromara.common.core.domain.event.ProcessDeleteEvent;
import org.dromara.common.core.domain.event.ProcessEvent; import org.dromara.common.core.domain.event.ProcessEvent;
import org.dromara.common.core.domain.event.ProcessTaskEvent; import org.dromara.common.core.domain.event.ProcessTaskEvent;
import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.common.core.service.XzdProjectService; import org.dromara.common.core.service.XzdProjectService;
import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.utils.SpringUtils;
@ -18,6 +20,8 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.utils.BatchNumberGenerator; import org.dromara.common.utils.BatchNumberGenerator;
import org.dromara.project.domain.dto.project.BusProjectCreateReq;
import org.dromara.project.service.IBusProjectService;
import org.dromara.system.domain.vo.SysDeptVo; import org.dromara.system.domain.vo.SysDeptVo;
import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.service.impl.SysDeptServiceImpl; import org.dromara.system.service.impl.SysDeptServiceImpl;
@ -50,6 +54,9 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
private final XzdProjectMapper baseMapper; private final XzdProjectMapper baseMapper;
@Resource
private IBusProjectService projectService;
@Autowired @Autowired
private XzdProjectProfileServiceImpl xzdProjectProfileService; private XzdProjectProfileServiceImpl xzdProjectProfileService;
@Autowired @Autowired
@ -85,7 +92,7 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
* @return 项目信息 * @return 项目信息
*/ */
@Override @Override
public XzdProjectVo queryById(Long id){ public XzdProjectVo queryById(Long id) {
XzdProjectVo projectVo = baseMapper.selectVoById(id); XzdProjectVo projectVo = baseMapper.selectVoById(id);
setValue(projectVo); setValue(projectVo);
return projectVo; return projectVo;
@ -100,10 +107,10 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
*/ */
@Override @Override
public TableDataInfo<XzdProjectVo> queryPageList(XzdProjectBo bo, PageQuery pageQuery) { public TableDataInfo<XzdProjectVo> queryPageList(XzdProjectBo bo, PageQuery pageQuery) {
if(pageQuery.getPageNum() != null && pageQuery.getPageSize() != null) { if (pageQuery.getPageNum() != null && pageQuery.getPageSize() != null) {
bo.setPageNum(pageQuery.getPageNum()); bo.setPageNum(pageQuery.getPageNum());
bo.setPageSize(pageQuery.getPageSize()); bo.setPageSize(pageQuery.getPageSize());
}else { } else {
bo.setPageNum(1); bo.setPageNum(1);
bo.setPageSize(10); bo.setPageSize(10);
} }
@ -112,12 +119,12 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
SysDeptVo deptVo = iSysDeptService.selectDeptById(deptId); SysDeptVo deptVo = iSysDeptService.selectDeptById(deptId);
if (LoginHelper.isSuperAdmin()) { if (LoginHelper.isSuperAdmin()) {
bo.setSsgs(deptVo.getDeptId()); bo.setSsgs(deptVo.getDeptId());
}else { } else {
String ancestors = deptVo.getAncestors(); String ancestors = deptVo.getAncestors();
List<Long> ids = StringUtils.splitTo(ancestors, Convert::toLong); List<Long> ids = StringUtils.splitTo(ancestors, Convert::toLong);
if (ids.size() == 2) { if (ids.size() == 2) {
bo.setSsgs(deptVo.getDeptId()); bo.setSsgs(deptVo.getDeptId());
}else { } else {
bo.setSsgs(iSysDeptService.selectDeptById(ids.get(2)).getDeptId()); bo.setSsgs(iSysDeptService.selectDeptById(ids.get(2)).getDeptId());
} }
} }
@ -202,30 +209,30 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
SysDeptVo deptVo = iSysDeptService.selectDeptById(deptId); SysDeptVo deptVo = iSysDeptService.selectDeptById(deptId);
if (LoginHelper.isSuperAdmin()) { if (LoginHelper.isSuperAdmin()) {
add.setSsgs(deptVo.getDeptId()); add.setSsgs(deptVo.getDeptId());
}else { } else {
String ancestors = deptVo.getAncestors(); String ancestors = deptVo.getAncestors();
List<Long> ids = StringUtils.splitTo(ancestors, Convert::toLong); List<Long> ids = StringUtils.splitTo(ancestors, Convert::toLong);
if (ids.size() == 2) { if (ids.size() == 2) {
add.setSsgs(deptVo.getDeptId()); add.setSsgs(deptVo.getDeptId());
}else { } else {
add.setSsgs(iSysDeptService.selectDeptById(ids.get(2)).getDeptId()); add.setSsgs(iSysDeptService.selectDeptById(ids.get(2)).getDeptId());
} }
} }
boolean flag = baseMapper.insert(add) > 0; boolean flag = baseMapper.insert(add) > 0;
if (flag) { if (flag) {
bo.setId(add.getId()); bo.setId(add.getId());
}else { } else {
return false; return false;
} }
//项目概况处理 //项目概况处理
if (bo.getXmgk() != null){ if (bo.getXmgk() != null) {
bo.getXmgk().setXzdProjectId(add.getId()); bo.getXmgk().setXzdProjectId(add.getId());
xzdProjectProfileService.insertByBo(bo.getXmgk()); xzdProjectProfileService.insertByBo(bo.getXmgk());
} }
//项目人员处理 //项目人员处理
if (bo.getXmry() != null && !bo.getXmry().isEmpty()){ if (bo.getXmry() != null && !bo.getXmry().isEmpty()) {
for (XzdProjectPersonnelBo personnelBo : bo.getXmry()) { for (XzdProjectPersonnelBo personnelBo : bo.getXmry()) {
personnelBo.setXzdProjectId(add.getId()); personnelBo.setXzdProjectId(add.getId());
xzdProjectPersonnelService.insertByBo(personnelBo); xzdProjectPersonnelService.insertByBo(personnelBo);
@ -233,19 +240,19 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
} }
//税务信息处理 //税务信息处理
if (bo.getSwxx() != null){ if (bo.getSwxx() != null) {
bo.getSwxx().setXzdProjectId(add.getId()); bo.getSwxx().setXzdProjectId(add.getId());
xzdProjectTaxInfoService.insertByBo(bo.getSwxx()); xzdProjectTaxInfoService.insertByBo(bo.getSwxx());
} }
//核算信息 //核算信息
if (bo.getHsxx() != null){ if (bo.getHsxx() != null) {
bo.getHsxx().setXzdProjectId(add.getId()); bo.getHsxx().setXzdProjectId(add.getId());
xzdProjectAccountingInfoService.insertByBo(bo.getHsxx()); xzdProjectAccountingInfoService.insertByBo(bo.getHsxx());
} }
//仓库信息 //仓库信息
if (bo.getXmck() != null && !bo.getXmck().isEmpty()){ if (bo.getXmck() != null && !bo.getXmck().isEmpty()) {
for (XzdProjectWarehousesBo warehousesBo : bo.getXmck()) { for (XzdProjectWarehousesBo warehousesBo : bo.getXmck()) {
warehousesBo.setXzdProjectId(add.getId()); warehousesBo.setXzdProjectId(add.getId());
xzdProjectWarehousesService.insertByBo(warehousesBo); xzdProjectWarehousesService.insertByBo(warehousesBo);
@ -253,7 +260,7 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
} }
//内部账户信息 //内部账户信息
if (bo.getNbzj() != null && !bo.getNbzj().isEmpty()){ if (bo.getNbzj() != null && !bo.getNbzj().isEmpty()) {
for (XzdProjectInternalAccountsBo internalAccountsBo : bo.getNbzj()) { for (XzdProjectInternalAccountsBo internalAccountsBo : bo.getNbzj()) {
internalAccountsBo.setXzdProjectId(add.getId()); internalAccountsBo.setXzdProjectId(add.getId());
xzdProjectInternalAccountsService.insertByBo(internalAccountsBo); xzdProjectInternalAccountsService.insertByBo(internalAccountsBo);
@ -261,7 +268,7 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
} }
//参与单位信息 //参与单位信息
if (bo.getCjdw() != null && !bo.getCjdw().isEmpty()){ if (bo.getCjdw() != null && !bo.getCjdw().isEmpty()) {
for (XzdProjectParticipatingUnitsBo participatingUnitsBo : bo.getCjdw()) { for (XzdProjectParticipatingUnitsBo participatingUnitsBo : bo.getCjdw()) {
participatingUnitsBo.setXzdProjectId(add.getId()); participatingUnitsBo.setXzdProjectId(add.getId());
xzdProjectParticipatingUnitsService.insertByBo(participatingUnitsBo); xzdProjectParticipatingUnitsService.insertByBo(participatingUnitsBo);
@ -287,17 +294,17 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
XzdProject update = MapstructUtils.convert(bo, XzdProject.class); XzdProject update = MapstructUtils.convert(bo, XzdProject.class);
validEntityBeforeSave(update); validEntityBeforeSave(update);
boolean b = baseMapper.updateById(update) > 0; boolean b = baseMapper.updateById(update) > 0;
if (!b){ if (!b) {
return false; return false;
} }
//项目概况处理 //项目概况处理
if (bo.getXmgk() != null){ if (bo.getXmgk() != null) {
xzdProjectProfileService.updateByBo(bo.getXmgk()); xzdProjectProfileService.updateByBo(bo.getXmgk());
} }
//项目人员处理 //项目人员处理
if (bo.getXmry() != null && !bo.getXmry().isEmpty()){ if (bo.getXmry() != null && !bo.getXmry().isEmpty()) {
// 获取原有记录的ID列表 // 获取原有记录的ID列表
if (oldValue.getXmry() != null && !oldValue.getXmry().isEmpty()) { if (oldValue.getXmry() != null && !oldValue.getXmry().isEmpty()) {
@ -323,9 +330,9 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
xzdProjectPersonnelService.removeById(warehouses.getId()); xzdProjectPersonnelService.removeById(warehouses.getId());
} }
} }
xzdProjectPersonnelService.saveOrUpdateBatch( now); xzdProjectPersonnelService.saveOrUpdateBatch(now);
}else { } else {
for (XzdProjectPersonnelBo boValue : bo.getXmry()) { for (XzdProjectPersonnelBo boValue : bo.getXmry()) {
boValue.setXzdProjectId(update.getId()); boValue.setXzdProjectId(update.getId());
xzdProjectPersonnelService.insertByBo(boValue); xzdProjectPersonnelService.insertByBo(boValue);
@ -334,18 +341,18 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
} }
//税务信息处理 //税务信息处理
if (bo.getSwxx() != null){ if (bo.getSwxx() != null) {
xzdProjectTaxInfoService.updateByBo(bo.getSwxx()); xzdProjectTaxInfoService.updateByBo(bo.getSwxx());
} }
//核算信息 //核算信息
if (bo.getHsxx() != null){ if (bo.getHsxx() != null) {
xzdProjectAccountingInfoService.updateByBo(bo.getHsxx()); xzdProjectAccountingInfoService.updateByBo(bo.getHsxx());
} }
//仓库信息 //仓库信息
if (bo.getXmck() != null && !bo.getXmck().isEmpty()){ if (bo.getXmck() != null && !bo.getXmck().isEmpty()) {
// 获取原有记录的ID列表 // 获取原有记录的ID列表
if (oldValue.getXmck() != null && !oldValue.getXmck().isEmpty()) { if (oldValue.getXmck() != null && !oldValue.getXmck().isEmpty()) {
@ -359,7 +366,7 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
List<XzdProjectWarehouses> now = new ArrayList<>(); List<XzdProjectWarehouses> now = new ArrayList<>();
for (XzdProjectWarehousesBo boValue : bo.getXmck()) { for (XzdProjectWarehousesBo boValue : bo.getXmck()) {
if (boValue.getId() == null){ if (boValue.getId() == null) {
boValue.setXzdProjectId(update.getId()); boValue.setXzdProjectId(update.getId());
} }
XzdProjectWarehouses temp = new XzdProjectWarehouses(); XzdProjectWarehouses temp = new XzdProjectWarehouses();
@ -373,9 +380,9 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
xzdProjectWarehousesService.removeById(warehouses.getId()); xzdProjectWarehousesService.removeById(warehouses.getId());
} }
} }
xzdProjectWarehousesService.saveOrUpdateBatch( now); xzdProjectWarehousesService.saveOrUpdateBatch(now);
}else { } else {
for (XzdProjectWarehousesBo boValue : bo.getXmck()) { for (XzdProjectWarehousesBo boValue : bo.getXmck()) {
boValue.setXzdProjectId(update.getId()); boValue.setXzdProjectId(update.getId());
xzdProjectWarehousesService.insertByBo(boValue); xzdProjectWarehousesService.insertByBo(boValue);
@ -384,7 +391,7 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
} }
//内部账户信息 //内部账户信息
if (bo.getNbzj() != null && !bo.getNbzj().isEmpty()){ if (bo.getNbzj() != null && !bo.getNbzj().isEmpty()) {
// 获取原有记录的ID列表 // 获取原有记录的ID列表
if (oldValue.getNbzj() != null && !oldValue.getNbzj().isEmpty()) { if (oldValue.getNbzj() != null && !oldValue.getNbzj().isEmpty()) {
@ -398,7 +405,7 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
List<XzdProjectInternalAccounts> now = new ArrayList<>(); List<XzdProjectInternalAccounts> now = new ArrayList<>();
for (XzdProjectInternalAccountsBo boValue : bo.getNbzj()) { for (XzdProjectInternalAccountsBo boValue : bo.getNbzj()) {
if (boValue.getId() == null){ if (boValue.getId() == null) {
boValue.setXzdProjectId(update.getId()); boValue.setXzdProjectId(update.getId());
} }
XzdProjectInternalAccounts temp = new XzdProjectInternalAccounts(); XzdProjectInternalAccounts temp = new XzdProjectInternalAccounts();
@ -412,9 +419,9 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
xzdProjectInternalAccountsService.removeById(warehouses.getId()); xzdProjectInternalAccountsService.removeById(warehouses.getId());
} }
} }
xzdProjectInternalAccountsService.saveOrUpdateBatch( now); xzdProjectInternalAccountsService.saveOrUpdateBatch(now);
}else { } else {
for (XzdProjectInternalAccountsBo boValue : bo.getNbzj()) { for (XzdProjectInternalAccountsBo boValue : bo.getNbzj()) {
boValue.setXzdProjectId(update.getId()); boValue.setXzdProjectId(update.getId());
xzdProjectInternalAccountsService.insertByBo(boValue); xzdProjectInternalAccountsService.insertByBo(boValue);
@ -423,7 +430,7 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
} }
//参与单位信息 //参与单位信息
if (bo.getCjdw() != null && !bo.getCjdw().isEmpty()){ if (bo.getCjdw() != null && !bo.getCjdw().isEmpty()) {
// 获取原有记录的ID列表 // 获取原有记录的ID列表
if (oldValue.getCjdw() != null && !oldValue.getCjdw().isEmpty()) { if (oldValue.getCjdw() != null && !oldValue.getCjdw().isEmpty()) {
@ -437,7 +444,7 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
List<XzdProjectParticipatingUnits> now = new ArrayList<>(); List<XzdProjectParticipatingUnits> now = new ArrayList<>();
for (XzdProjectParticipatingUnitsBo boValue : bo.getCjdw()) { for (XzdProjectParticipatingUnitsBo boValue : bo.getCjdw()) {
if (boValue.getId() == null){ if (boValue.getId() == null) {
boValue.setXzdProjectId(update.getId()); boValue.setXzdProjectId(update.getId());
} }
XzdProjectParticipatingUnits temp = new XzdProjectParticipatingUnits(); XzdProjectParticipatingUnits temp = new XzdProjectParticipatingUnits();
@ -451,9 +458,9 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
xzdProjectParticipatingUnitsService.removeById(warehouses.getId()); xzdProjectParticipatingUnitsService.removeById(warehouses.getId());
} }
} }
xzdProjectParticipatingUnitsService.saveOrUpdateBatch( now); xzdProjectParticipatingUnitsService.saveOrUpdateBatch(now);
}else { } else {
for (XzdProjectParticipatingUnitsBo boValue : bo.getCjdw()) { for (XzdProjectParticipatingUnitsBo boValue : bo.getCjdw()) {
boValue.setXzdProjectId(update.getId()); boValue.setXzdProjectId(update.getId());
xzdProjectParticipatingUnitsService.insertByBo(boValue); xzdProjectParticipatingUnitsService.insertByBo(boValue);
@ -467,7 +474,7 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
/** /**
* 保存前的数据校验 * 保存前的数据校验
*/ */
private void validEntityBeforeSave(XzdProject entity){ private void validEntityBeforeSave(XzdProject entity) {
//TODO 做一些数据校验,如唯一约束 //TODO 做一些数据校验,如唯一约束
} }
@ -480,7 +487,7 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
*/ */
@Override @Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){ if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验 //TODO 做一些业务上的校验,判断是否需要校验
} }
@ -549,7 +556,7 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
return xzdProjectVos; return xzdProjectVos;
} }
public void setValue(XzdProjectVo entity){ public void setValue(XzdProjectVo entity) {
if (entity != null) { if (entity != null) {
//项目概况 //项目概况
LambdaQueryWrapper<XzdProjectProfile> profileLambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<XzdProjectProfile> profileLambdaQueryWrapper = new LambdaQueryWrapper<>();
@ -627,7 +634,7 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
if (xzdProjectTypeVo != null) { if (xzdProjectTypeVo != null) {
entity.setProjectTypeName(xzdProjectTypeVo.getTypeName()); entity.setProjectTypeName(xzdProjectTypeVo.getTypeName());
XzdProjectTypeVo bigType = xzdProjectTypeService.getBigType(xzdProjectTypeVo.getId()); XzdProjectTypeVo bigType = xzdProjectTypeService.getBigType(xzdProjectTypeVo.getId());
if (bigType != null){ if (bigType != null) {
entity.setXmdl(bigType.getTypeName()); entity.setXmdl(bigType.getTypeName());
} }
} }
@ -723,13 +730,38 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
* *
* @param processEvent 参数 * @param processEvent 参数
*/ */
@org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('XzdProject')") @EventListener(condition = "#processEvent.flowCode.endsWith('XzdProject')")
@Transactional @Transactional
public void processPlansHandler(ProcessEvent processEvent) { public void processPlansHandler(ProcessEvent processEvent) {
log.info("项目信息审核任务执行了{}", processEvent.toString()); log.info("项目信息审核任务执行了{}", processEvent.toString());
String id = processEvent.getBusinessId(); String id = processEvent.getBusinessId();
XzdProject byId = this.getById(Long.valueOf(id)); XzdProject byId = this.getById(Long.valueOf(id));
byId.setShzt(processEvent.getStatus()); if (byId == null) {
log.error("项目信息审核任务更新状态失败:{} 无此项目", id);
return;
}
String status = processEvent.getStatus();
if (BusinessStatusEnum.FINISH.getStatus().equals(status)) {
try {
// 创建系统项目
BusProjectCreateReq project = new BusProjectCreateReq();
project.setXzdProjectId(byId.getId());
project.setProjectName(byId.getProjectName());
project.setShortName(byId.getProjectAbbreviation());
project.setOnStreamTime(String.valueOf(byId.getActualStartDate()));
// 获取项目概括
XzdProjectProfile projectProfile = xzdProjectProfileService.lambdaQuery()
.eq(XzdProjectProfile::getXzdProjectId, byId.getId())
.last("limit 1")
.one();
project.setProjectGeneralize(projectProfile.getProjectProfile());
project.setProvince(projectProfile.getProvince());
projectService.insertByBo(project);
} catch (Exception e) {
log.error("自动创建系统项目失败:{} - {}", byId.getId(), byId.getProjectName(), e);
}
}
byId.setShzt(status);
boolean b = this.updateById(byId); boolean b = this.updateById(byId);
if (!b) { if (!b) {
log.error("项目信息审核任务更新状态失败"); log.error("项目信息审核任务更新状态失败");
@ -746,7 +778,7 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
* *
* @param processTaskEvent 参数 * @param processTaskEvent 参数
*/ */
@org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('XzdProject')") @EventListener(condition = "#processTaskEvent.flowCode.endsWith('XzdProject')")
public void processTaskPlansHandlerEquipmentList(ProcessTaskEvent processTaskEvent) { public void processTaskPlansHandlerEquipmentList(ProcessTaskEvent processTaskEvent) {
log.info("项目信息审批审核任务创建了{}", processTaskEvent.toString()); log.info("项目信息审批审核任务创建了{}", processTaskEvent.toString());
} }