招采管理模块修改
This commit is contained in:
@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.tender.domain.bo.BusBiddingPlanBo;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
@ -21,12 +22,13 @@ import org.dromara.bidding.domain.vo.BusListOfWinningBidsVo;
|
||||
import org.dromara.bidding.domain.bo.BusListOfWinningBidsBo;
|
||||
import org.dromara.bidding.service.IBusListOfWinningBidsService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* 中标项目一览
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
* @date 2025-08-22
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@ -75,8 +77,8 @@ public class BusListOfWinningBidsController extends BaseController {
|
||||
@Log(title = "中标项目一览", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@RequestBody BusListOfWinningBidsBo bo) {
|
||||
return toAjax(busListOfWinningBidsService.insertByBo(bo));
|
||||
public R<Void> add(@RequestPart("bo") BusListOfWinningBidsBo bo ,@RequestParam(name = "file", required = false) MultipartFile file) {
|
||||
return toAjax(busListOfWinningBidsService.insertByBo(bo,file));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -6,7 +6,6 @@ import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
@ -16,7 +15,7 @@ import java.io.Serial;
|
||||
* 中标项目一览对象 bus_list_of_winning_bids
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
* @date 2025-08-22
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ -37,90 +36,105 @@ public class BusListOfWinningBids extends BaseEntity {
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 项目状态
|
||||
*/
|
||||
private String projectStatus;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 中标价(原币)
|
||||
* 项目简称
|
||||
*/
|
||||
private BigDecimal winningBidOriginal;
|
||||
private String shortName;
|
||||
|
||||
/**
|
||||
* 汇率
|
||||
* 负责人
|
||||
*/
|
||||
private BigDecimal exchangeRate;
|
||||
private String principal;
|
||||
|
||||
/**
|
||||
* 币种
|
||||
* 负责人电话
|
||||
*/
|
||||
private String currency;
|
||||
private String principalPhone;
|
||||
|
||||
/**
|
||||
* 所属主体
|
||||
* 项目类型
|
||||
*/
|
||||
private String subject;
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 项目阶段
|
||||
*/
|
||||
private String projectStage;
|
||||
|
||||
/**
|
||||
* 开工时间
|
||||
*/
|
||||
private String onStreamTime;
|
||||
|
||||
/**
|
||||
* 经度
|
||||
*/
|
||||
private String lng;
|
||||
|
||||
/**
|
||||
* 纬度
|
||||
*/
|
||||
private String lat;
|
||||
|
||||
/**
|
||||
* 项目地址
|
||||
*/
|
||||
private String projectSite;
|
||||
|
||||
/**
|
||||
* 计划容量
|
||||
*/
|
||||
private String plan;
|
||||
|
||||
/**
|
||||
* 实际容量
|
||||
*/
|
||||
private String actual;
|
||||
|
||||
/**
|
||||
* 设计总量
|
||||
*/
|
||||
private Long designTotal;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 排序字段
|
||||
*/
|
||||
private Long sort;
|
||||
|
||||
/**
|
||||
* 删除时间
|
||||
*/
|
||||
private Date deletedAt;
|
||||
|
||||
/**
|
||||
* 是否中标(0中标 1未中标)
|
||||
*/
|
||||
private String whetherBid;
|
||||
|
||||
/**
|
||||
* 中标价
|
||||
*/
|
||||
private BigDecimal winningBid;
|
||||
private BigDecimal bidPrice;
|
||||
|
||||
/**
|
||||
* 中标日期
|
||||
* 中标通知书
|
||||
*/
|
||||
private LocalDate bidWinningDate;
|
||||
private String bidFile;
|
||||
|
||||
/**
|
||||
* 投标保证金
|
||||
* 中标通知书名称
|
||||
*/
|
||||
private BigDecimal bidDeposit;
|
||||
|
||||
/**
|
||||
* 是否退还
|
||||
*/
|
||||
private String whetherSendBack;
|
||||
|
||||
/**
|
||||
* 建设单位(客户)
|
||||
*/
|
||||
private String construction;
|
||||
|
||||
/**
|
||||
* 总造价
|
||||
*/
|
||||
private BigDecimal totalCost;
|
||||
|
||||
/**
|
||||
* 立项申请人
|
||||
*/
|
||||
private String projectApplicant;
|
||||
|
||||
/**
|
||||
* 立项部门
|
||||
*/
|
||||
private String projectApplicantDept;
|
||||
|
||||
/**
|
||||
* 立项申请日期
|
||||
*/
|
||||
private LocalDate projectApplicantTime;
|
||||
|
||||
/**
|
||||
* 流程状态
|
||||
*/
|
||||
private String processStatus;
|
||||
|
||||
/**
|
||||
* 项目编号
|
||||
*/
|
||||
private String projectNumbering;
|
||||
private String bidFileName;
|
||||
|
||||
|
||||
}
|
||||
|
@ -10,7 +10,6 @@ import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
@ -18,7 +17,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
* 中标项目一览业务对象 bus_list_of_winning_bids
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
* @date 2025-08-22
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ -34,93 +33,110 @@ public class BusListOfWinningBidsBo extends BaseEntity {
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
@NotNull(message = "项目id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 项目状态
|
||||
*/
|
||||
private String projectStatus;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 中标价(原币)
|
||||
* 项目简称
|
||||
*/
|
||||
private BigDecimal winningBidOriginal;
|
||||
private String shortName;
|
||||
|
||||
/**
|
||||
* 汇率
|
||||
* 负责人
|
||||
*/
|
||||
private BigDecimal exchangeRate;
|
||||
private String principal;
|
||||
|
||||
/**
|
||||
* 币种
|
||||
* 负责人电话
|
||||
*/
|
||||
private String currency;
|
||||
private String principalPhone;
|
||||
|
||||
/**
|
||||
* 所属主体
|
||||
* 项目类型
|
||||
*/
|
||||
private String subject;
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 项目阶段
|
||||
*/
|
||||
private String projectStage;
|
||||
|
||||
/**
|
||||
* 开工时间
|
||||
*/
|
||||
private String onStreamTime;
|
||||
|
||||
/**
|
||||
* 经度
|
||||
*/
|
||||
private String lng;
|
||||
|
||||
/**
|
||||
* 纬度
|
||||
*/
|
||||
private String lat;
|
||||
|
||||
/**
|
||||
* 项目地址
|
||||
*/
|
||||
private String projectSite;
|
||||
|
||||
/**
|
||||
* 计划容量
|
||||
*/
|
||||
private String plan;
|
||||
|
||||
/**
|
||||
* 实际容量
|
||||
*/
|
||||
private String actual;
|
||||
|
||||
/**
|
||||
* 设计总量
|
||||
*/
|
||||
@NotNull(message = "设计总量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long designTotal;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 排序字段
|
||||
*/
|
||||
@NotNull(message = "排序字段不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long sort;
|
||||
|
||||
/**
|
||||
* 删除时间
|
||||
*/
|
||||
private Date deletedAt;
|
||||
|
||||
/**
|
||||
* 是否中标(0中标 1未中标)
|
||||
*/
|
||||
private String whetherBid;
|
||||
|
||||
/**
|
||||
* 中标价
|
||||
*/
|
||||
private BigDecimal winningBid;
|
||||
private BigDecimal bidPrice;
|
||||
|
||||
/**
|
||||
* 中标日期
|
||||
* 中标通知书
|
||||
*/
|
||||
private LocalDate bidWinningDate;
|
||||
private String bidFile;
|
||||
|
||||
/**
|
||||
* 投标保证金
|
||||
* 中标通知书名称
|
||||
*/
|
||||
private BigDecimal bidDeposit;
|
||||
private String bidFileName;
|
||||
|
||||
/**
|
||||
* 是否退还
|
||||
*/
|
||||
private String whetherSendBack;
|
||||
|
||||
/**
|
||||
* 建设单位(客户)
|
||||
*/
|
||||
private String construction;
|
||||
|
||||
/**
|
||||
* 总造价
|
||||
*/
|
||||
private BigDecimal totalCost;
|
||||
|
||||
/**
|
||||
* 立项申请人
|
||||
*/
|
||||
private String projectApplicant;
|
||||
|
||||
/**
|
||||
* 立项部门
|
||||
*/
|
||||
private String projectApplicantDept;
|
||||
|
||||
/**
|
||||
* 立项申请日期
|
||||
*/
|
||||
private LocalDate projectApplicantTime;
|
||||
|
||||
/**
|
||||
* 流程状态
|
||||
*/
|
||||
private String processStatus;
|
||||
|
||||
/**
|
||||
* 项目编号
|
||||
*/
|
||||
private String projectNumbering;
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
package org.dromara.bidding.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.dromara.bidding.domain.BusListOfWinningBids;
|
||||
@ -22,7 +21,7 @@ import java.util.Date;
|
||||
* 中标项目一览视图对象 bus_list_of_winning_bids
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
* @date 2025-08-22
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@ -44,12 +43,6 @@ public class BusListOfWinningBidsVo implements Serializable {
|
||||
@ExcelProperty(value = "项目id")
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 项目状态
|
||||
*/
|
||||
@ExcelProperty(value = "项目状态")
|
||||
private String projectStatus;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
@ -57,95 +50,119 @@ public class BusListOfWinningBidsVo implements Serializable {
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 中标价(原币)
|
||||
* 项目简称
|
||||
*/
|
||||
@ExcelProperty(value = "中标价(原币)", converter = ExcelDictConvert.class)
|
||||
private BigDecimal winningBidOriginal;
|
||||
@ExcelProperty(value = "项目简称")
|
||||
private String shortName;
|
||||
|
||||
/**
|
||||
* 汇率
|
||||
* 负责人
|
||||
*/
|
||||
@ExcelProperty(value = "汇率")
|
||||
private BigDecimal exchangeRate;
|
||||
@ExcelProperty(value = "负责人")
|
||||
private String principal;
|
||||
|
||||
/**
|
||||
* 币种
|
||||
* 负责人电话
|
||||
*/
|
||||
@ExcelProperty(value = "币种")
|
||||
private String currency;
|
||||
@ExcelProperty(value = "负责人电话")
|
||||
private String principalPhone;
|
||||
|
||||
/**
|
||||
* 所属主体
|
||||
* 项目类型
|
||||
*/
|
||||
@ExcelProperty(value = "所属主体")
|
||||
private String subject;
|
||||
@ExcelProperty(value = "项目类型")
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 项目阶段
|
||||
*/
|
||||
@ExcelProperty(value = "项目阶段")
|
||||
private String projectStage;
|
||||
|
||||
/**
|
||||
* 开工时间
|
||||
*/
|
||||
@ExcelProperty(value = "开工时间")
|
||||
private String onStreamTime;
|
||||
|
||||
/**
|
||||
* 经度
|
||||
*/
|
||||
@ExcelProperty(value = "经度")
|
||||
private String lng;
|
||||
|
||||
/**
|
||||
* 纬度
|
||||
*/
|
||||
@ExcelProperty(value = "纬度")
|
||||
private String lat;
|
||||
|
||||
/**
|
||||
* 项目地址
|
||||
*/
|
||||
@ExcelProperty(value = "项目地址")
|
||||
private String projectSite;
|
||||
|
||||
/**
|
||||
* 计划容量
|
||||
*/
|
||||
@ExcelProperty(value = "计划容量")
|
||||
private String plan;
|
||||
|
||||
/**
|
||||
* 实际容量
|
||||
*/
|
||||
@ExcelProperty(value = "实际容量")
|
||||
private String actual;
|
||||
|
||||
/**
|
||||
* 设计总量
|
||||
*/
|
||||
@ExcelProperty(value = "设计总量")
|
||||
private Long designTotal;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 排序字段
|
||||
*/
|
||||
@ExcelProperty(value = "排序字段")
|
||||
private Long sort;
|
||||
|
||||
/**
|
||||
* 删除时间
|
||||
*/
|
||||
@ExcelProperty(value = "删除时间")
|
||||
private Date deletedAt;
|
||||
|
||||
/**
|
||||
* 是否中标(0中标 1未中标)
|
||||
*/
|
||||
@ExcelProperty(value = "是否中标", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0=中标,1=未中标")
|
||||
private String whetherBid;
|
||||
|
||||
/**
|
||||
* 中标价
|
||||
*/
|
||||
@ExcelProperty(value = "中标价")
|
||||
private BigDecimal winningBid;
|
||||
private BigDecimal bidPrice;
|
||||
|
||||
/**
|
||||
* 中标日期
|
||||
* 中标通知书
|
||||
*/
|
||||
@ExcelProperty(value = "中标日期")
|
||||
private LocalDate bidWinningDate;
|
||||
@ExcelProperty(value = "中标通知书")
|
||||
private String bidFile;
|
||||
|
||||
/**
|
||||
* 投标保证金
|
||||
* 中标通知书名称
|
||||
*/
|
||||
@ExcelProperty(value = "投标保证金")
|
||||
private BigDecimal bidDeposit;
|
||||
|
||||
/**
|
||||
* 是否退还
|
||||
*/
|
||||
@ExcelProperty(value = "是否退还")
|
||||
private String whetherSendBack;
|
||||
|
||||
/**
|
||||
* 建设单位(客户)
|
||||
*/
|
||||
@ExcelProperty(value = "建设单位", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "客=户")
|
||||
private String construction;
|
||||
|
||||
/**
|
||||
* 总造价
|
||||
*/
|
||||
@ExcelProperty(value = "总造价")
|
||||
private BigDecimal totalCost;
|
||||
|
||||
/**
|
||||
* 立项申请人
|
||||
*/
|
||||
@ExcelProperty(value = "立项申请人")
|
||||
private String projectApplicant;
|
||||
|
||||
/**
|
||||
* 立项部门
|
||||
*/
|
||||
@ExcelProperty(value = "立项部门")
|
||||
private String projectApplicantDept;
|
||||
|
||||
/**
|
||||
* 立项申请日期
|
||||
*/
|
||||
@ExcelProperty(value = "立项申请日期")
|
||||
private LocalDate projectApplicantTime;
|
||||
|
||||
/**
|
||||
* 流程状态
|
||||
*/
|
||||
@ExcelProperty(value = "流程状态")
|
||||
private String processStatus;
|
||||
|
||||
/**
|
||||
* 项目编号
|
||||
*/
|
||||
@ExcelProperty(value = "项目编号")
|
||||
private String projectNumbering;
|
||||
@ExcelProperty(value = "中标通知书名称")
|
||||
private String bidFileName;
|
||||
|
||||
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
* 中标项目一览Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
* @date 2025-08-22
|
||||
*/
|
||||
public interface BusListOfWinningBidsMapper extends BaseMapperPlus<BusListOfWinningBids, BusListOfWinningBidsVo> {
|
||||
|
||||
|
@ -3,11 +3,12 @@ package org.dromara.bidding.service;
|
||||
import org.dromara.bidding.domain.vo.BusListOfWinningBidsVo;
|
||||
import org.dromara.bidding.domain.bo.BusListOfWinningBidsBo;
|
||||
import org.dromara.bidding.domain.BusListOfWinningBids;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
@ -15,7 +16,7 @@ import java.util.List;
|
||||
* 中标项目一览Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
* @date 2025-08-22
|
||||
*/
|
||||
public interface IBusListOfWinningBidsService extends IService<BusListOfWinningBids>{
|
||||
|
||||
@ -47,10 +48,11 @@ public interface IBusListOfWinningBidsService extends IService<BusListOfWinningB
|
||||
/**
|
||||
* 新增中标项目一览
|
||||
*
|
||||
* @param bo 中标项目一览
|
||||
* @param bo 中标项目一览
|
||||
* @param file
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(BusListOfWinningBidsBo bo);
|
||||
Boolean insertByBo(BusListOfWinningBidsBo bo, MultipartFile file);
|
||||
|
||||
/**
|
||||
* 修改中标项目一览
|
||||
@ -69,5 +71,10 @@ public interface IBusListOfWinningBidsService extends IService<BusListOfWinningB
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* 根据项目id获取数据
|
||||
* @param bo
|
||||
* @return
|
||||
*/
|
||||
BusListOfWinningBidsVo queryOne(BusListOfWinningBidsBo bo);
|
||||
}
|
||||
|
@ -1,6 +1,10 @@
|
||||
package org.dromara.bidding.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
||||
import org.dromara.common.core.domain.event.ProcessEvent;
|
||||
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
@ -9,6 +13,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.design.domain.BusBillofquantitiesVersions;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.bidding.domain.bo.BusBiddingLimitVersionsBo;
|
||||
import org.dromara.bidding.domain.vo.BusBiddingLimitVersionsVo;
|
||||
@ -26,6 +32,7 @@ import java.util.Collection;
|
||||
* @author Lion Li
|
||||
* @date 2025-08-21
|
||||
*/
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class BusBiddingLimitVersionsServiceImpl extends ServiceImpl<BusBiddingLimitVersionsMapper, BusBiddingLimitVersions> implements IBusBiddingLimitVersionsService {
|
||||
@ -131,4 +138,60 @@ public class BusBiddingLimitVersionsServiceImpl extends ServiceImpl<BusBiddingLi
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
||||
* 正常使用只需#processEvent.flowCode=='leave1'
|
||||
* 示例为了方便则使用startsWith匹配了全部示例key
|
||||
*
|
||||
* @param processEvent 参数
|
||||
*/
|
||||
@org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('biddingEquipmentList')")
|
||||
public void processPlansHandlErequipmentList(ProcessEvent processEvent) {
|
||||
log.info("物资设备清单审核任务执行了{}", processEvent.toString());
|
||||
String id = processEvent.getBusinessId();
|
||||
LambdaQueryWrapper<BusBiddingLimitVersions> eq = new LambdaQueryWrapper<BusBiddingLimitVersions>()
|
||||
.eq(BusBiddingLimitVersions::getVersions, id);
|
||||
BusBiddingLimitVersions busBiddingLimitVersions = new BusBiddingLimitVersions();
|
||||
busBiddingLimitVersions.setStatus(processEvent.getStatus());
|
||||
|
||||
boolean update = this.update(busBiddingLimitVersions, eq);
|
||||
// BusBiddingPlan biddingPlan = baseMapper.selectById(Long.valueOf(id));
|
||||
// if (biddingPlan == null) {
|
||||
// log.error("");
|
||||
// }
|
||||
// if (BusinessStatusEnum.DRAFT.getStatus().equals(biddingPlan.getStatus())) {
|
||||
// biddingPlan.setBidStatus(1);
|
||||
// }
|
||||
// biddingPlan.setStatus(processEvent.getStatus());
|
||||
// baseMapper.updateById(biddingPlan);
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行任务创建监听
|
||||
* 示例:也可通过 @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")进行判断
|
||||
* 在方法中判断流程节点key
|
||||
* if ("xxx".equals(processTaskEvent.getNodeCode())) {
|
||||
* //执行业务逻辑
|
||||
* }
|
||||
*
|
||||
* @param processTaskEvent 参数
|
||||
*/
|
||||
@org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('biddingEquipmentList')")
|
||||
public void processTaskPlansHandlerEquipmentList(ProcessTaskEvent processTaskEvent) {
|
||||
log.info("物资设备清单审核任务创建了{}", processTaskEvent.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* 监听删除流程事件
|
||||
* 正常使用只需#processDeleteEvent.flowCode=='leave1'
|
||||
* 示例为了方便则使用startsWith匹配了全部示例key
|
||||
*
|
||||
* @param processDeleteEvent 参数
|
||||
*/
|
||||
@EventListener(condition = "#processDeleteEvent.flowCode.endsWith('biddingEquipmentList')")
|
||||
public void processDeletePlansHandlerEquipmentList(ProcessDeleteEvent processDeleteEvent) {
|
||||
log.info("物资设备清单计划删除流程事件,技术标准文件审核任务执行了{}", processDeleteEvent.toString());
|
||||
}
|
||||
}
|
||||
|
@ -1,32 +1,35 @@
|
||||
package org.dromara.bidding.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.system.domain.vo.SysOssUploadVo;
|
||||
import org.dromara.system.service.ISysOssService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.bidding.domain.bo.BusListOfWinningBidsBo;
|
||||
import org.dromara.bidding.domain.vo.BusListOfWinningBidsVo;
|
||||
import org.dromara.bidding.domain.BusListOfWinningBids;
|
||||
import org.dromara.bidding.mapper.BusListOfWinningBidsMapper;
|
||||
import org.dromara.bidding.service.IBusListOfWinningBidsService;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
import static org.dromara.common.constant.MinioPathConstant.FormalitiesAnnex;
|
||||
|
||||
/**
|
||||
* 中标项目一览Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
* @date 2025-08-22
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
@ -34,6 +37,9 @@ public class BusListOfWinningBidsServiceImpl extends ServiceImpl<BusListOfWinnin
|
||||
|
||||
private final BusListOfWinningBidsMapper baseMapper;
|
||||
|
||||
@Autowired
|
||||
private ISysOssService ossService;
|
||||
|
||||
/**
|
||||
* 查询中标项目一览
|
||||
*
|
||||
@ -76,41 +82,32 @@ public class BusListOfWinningBidsServiceImpl extends ServiceImpl<BusListOfWinnin
|
||||
LambdaQueryWrapper<BusListOfWinningBids> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(BusListOfWinningBids::getId);
|
||||
lqw.eq(bo.getProjectId() != null, BusListOfWinningBids::getProjectId, bo.getProjectId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectStatus()), BusListOfWinningBids::getProjectStatus, bo.getProjectStatus());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), BusListOfWinningBids::getProjectName, bo.getProjectName());
|
||||
lqw.eq(bo.getWinningBidOriginal() != null, BusListOfWinningBids::getWinningBidOriginal, bo.getWinningBidOriginal());
|
||||
lqw.eq(bo.getExchangeRate() != null, BusListOfWinningBids::getExchangeRate, bo.getExchangeRate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getCurrency()), BusListOfWinningBids::getCurrency, bo.getCurrency());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSubject()), BusListOfWinningBids::getSubject, bo.getSubject());
|
||||
lqw.eq(bo.getWinningBid() != null, BusListOfWinningBids::getWinningBid, bo.getWinningBid());
|
||||
lqw.eq(bo.getBidWinningDate() != null, BusListOfWinningBids::getBidWinningDate, bo.getBidWinningDate());
|
||||
lqw.eq(bo.getBidDeposit() != null, BusListOfWinningBids::getBidDeposit, bo.getBidDeposit());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getWhetherSendBack()), BusListOfWinningBids::getWhetherSendBack, bo.getWhetherSendBack());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getConstruction()), BusListOfWinningBids::getConstruction, bo.getConstruction());
|
||||
lqw.eq(bo.getTotalCost() != null, BusListOfWinningBids::getTotalCost, bo.getTotalCost());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectApplicant()), BusListOfWinningBids::getProjectApplicant, bo.getProjectApplicant());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectApplicantDept()), BusListOfWinningBids::getProjectApplicantDept, bo.getProjectApplicantDept());
|
||||
lqw.eq(bo.getProjectApplicantTime() != null, BusListOfWinningBids::getProjectApplicantTime, bo.getProjectApplicantTime());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProcessStatus()), BusListOfWinningBids::getProcessStatus, bo.getProcessStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectNumbering()), BusListOfWinningBids::getProjectNumbering, bo.getProjectNumbering());
|
||||
lqw.eq(bo.getId() != null, BusListOfWinningBids::getId, bo.getId());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增中标项目一览
|
||||
*
|
||||
* @param bo 中标项目一览
|
||||
* @param bo 中标项目一览
|
||||
* @param file
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(BusListOfWinningBidsBo bo) {
|
||||
public Boolean insertByBo(BusListOfWinningBidsBo bo, MultipartFile file) {
|
||||
if ("0".equals(bo.getWhetherBid())){
|
||||
SysOssUploadVo wordEntity = ossService.uploadWithNoSave(file, ossService.minioFileName(FormalitiesAnnex,file));
|
||||
bo.setBidFile(wordEntity.getUrl());
|
||||
bo.setBidFileName(wordEntity.getFileName());
|
||||
}else {
|
||||
bo.setBidPrice(null);
|
||||
bo.setBidFile(null);
|
||||
bo.setBidFileName(null);
|
||||
}
|
||||
if (bo.getId() == null) {
|
||||
BusListOfWinningBids add = MapstructUtils.convert(bo, BusListOfWinningBids.class);
|
||||
Long count = baseMapper.selectCount(new LambdaQueryWrapper<BusListOfWinningBids>().eq(BusListOfWinningBids::getProjectId, bo.getProjectId()));
|
||||
if (count > 0) {
|
||||
throw new ServiceException("项目已存在不允许新增");
|
||||
}
|
||||
validEntityBeforeSave(add);
|
||||
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
|
@ -10,6 +10,8 @@ import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.formalities.domain.bo.BusFormalitiesAnnexBo;
|
||||
import org.dromara.formalities.domain.bo.BusFormalitiesAreConsolidatedBo;
|
||||
import org.dromara.tender.domain.bo.BusSegmentedIndicatorPlanningBo;
|
||||
import org.dromara.tender.domain.vo.BusBiddingPlanAnnexVo;
|
||||
import org.dromara.tender.domain.vo.BusBiddingPlanDetailVo;
|
||||
import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@ -68,6 +70,20 @@ public class BusBiddingPlanController extends BaseController {
|
||||
return R.ok(busBiddingPlanService.getMore(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看招标文件详情
|
||||
* @param bo
|
||||
* @return
|
||||
*/
|
||||
@SaCheckPermission("tender:biddingPlan:getAnnex")
|
||||
@GetMapping("/getAnnex")
|
||||
public R<List<BusBiddingPlanAnnexVo>> getAnnex(BusBiddingPlanBo bo) {
|
||||
if (bo.getId() == null) {
|
||||
throw new ServiceException("id不能为空");
|
||||
}
|
||||
return R.ok(busBiddingPlanService.getAnnex(bo));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 导出招标计划列表
|
||||
@ -85,12 +101,12 @@ public class BusBiddingPlanController extends BaseController {
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
// @SaCheckPermission("tender:biddingPlan:query")
|
||||
// @GetMapping("/{id}")
|
||||
// public R<BusBiddingPlanVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
// @PathVariable Long id) {
|
||||
// return R.ok(busBiddingPlanService.queryById(id));
|
||||
// }
|
||||
@SaCheckPermission("tender:biddingPlan:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BusBiddingPlanDetailVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(busBiddingPlanService.queryDetailById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增招标计划
|
||||
@ -122,9 +138,8 @@ public class BusBiddingPlanController extends BaseController {
|
||||
@Log(title = "招标计划", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(BusBiddingPlanBo bo,
|
||||
@RequestPart("file") MultipartFile bidFile) {
|
||||
return toAjax(busBiddingPlanService.updateByBo(bo,bidFile));
|
||||
public R<Void> edit( @Validated(EditGroup.class) @RequestBody BusBiddingPlanBo bo) {
|
||||
return toAjax(busBiddingPlanService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -71,6 +71,10 @@ public class BusBiddingPlan extends BaseEntity {
|
||||
* 分包内容
|
||||
*/
|
||||
private String content;
|
||||
/**
|
||||
* 类型(2、招采,3、物资)
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 中标通知书
|
||||
@ -95,7 +99,12 @@ public class BusBiddingPlan extends BaseEntity {
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private Integer status;
|
||||
private Integer bidStatus;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 中标单位
|
||||
|
@ -1,5 +1,8 @@
|
||||
package org.dromara.tender.domain;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
@ -32,6 +35,11 @@ public class TenderSupplierInput extends BaseEntity {
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目Id
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 企业登记注册类型
|
||||
*/
|
||||
|
@ -99,10 +99,20 @@ public class BusBiddingPlanBo extends BaseEntity {
|
||||
*/
|
||||
private String contractFileName;
|
||||
|
||||
/**
|
||||
* 类型(2、招采,3、物资)
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private Integer status;
|
||||
private Integer bidStatus;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 中标单位id
|
||||
@ -114,4 +124,9 @@ public class BusBiddingPlanBo extends BaseEntity {
|
||||
*/
|
||||
private List<BusTenderPlanningLimitListBo> limitListBos;
|
||||
|
||||
/**
|
||||
* 文件类型
|
||||
*/
|
||||
private Integer fileType;
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package org.dromara.tender.domain.bo;
|
||||
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.tender.domain.TenderSupplierInput;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
@ -29,6 +30,12 @@ public class TenderSupplierInputBo extends BaseEntity {
|
||||
@NotNull(message = "不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目Id
|
||||
*/
|
||||
@NotNull(message = "项目Id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 企业登记注册类型
|
||||
*/
|
||||
|
@ -0,0 +1,144 @@
|
||||
package org.dromara.tender.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.tender.domain.BusBiddingPlan;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 招标计划视图对象 bus_bidding_plan
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-21
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = BusBiddingPlan.class)
|
||||
public class BusBiddingPlanDetailVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目Id
|
||||
*/
|
||||
@ExcelProperty(value = "项目Id")
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 分包类型名称
|
||||
*/
|
||||
@ExcelProperty(value = "分包类型名称")
|
||||
private String dictName;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
@ExcelProperty(value = "名称")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 计划招标时间
|
||||
*/
|
||||
@ExcelProperty(value = "计划招标时间")
|
||||
private LocalDate plannedBiddingTime;
|
||||
|
||||
/**
|
||||
* 招标方式(公招,邀标)
|
||||
*/
|
||||
@ExcelProperty(value = "招标方式(公招,邀标)")
|
||||
private String plannedBiddingMethod;
|
||||
|
||||
/**
|
||||
* 总价
|
||||
*/
|
||||
@ExcelProperty(value = "总价")
|
||||
private BigDecimal price;
|
||||
|
||||
/**
|
||||
* 合同额
|
||||
*/
|
||||
@ExcelProperty(value = "合同额")
|
||||
private BigDecimal contractPrice;
|
||||
|
||||
/**
|
||||
* 分包内容
|
||||
*/
|
||||
@ExcelProperty(value = "分包内容")
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 中标通知书
|
||||
*/
|
||||
@ExcelProperty(value = "中标通知书")
|
||||
private String bidFile;
|
||||
|
||||
/**
|
||||
* 中标通知书名称
|
||||
*/
|
||||
@ExcelProperty(value = "中标通知书名称")
|
||||
private String bidFileName;
|
||||
|
||||
/**
|
||||
* 合同文件
|
||||
*/
|
||||
@ExcelProperty(value = "合同文件")
|
||||
private String contractFile;
|
||||
|
||||
/**
|
||||
* 合同文件名称
|
||||
*/
|
||||
@ExcelProperty(value = "合同文件名称")
|
||||
private String contractFileName;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private Integer bidStatus;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 类型(2、招采,3、物资)
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 中标单位
|
||||
*/
|
||||
private String winningBidder;
|
||||
|
||||
/**
|
||||
* 中标单位id
|
||||
*/
|
||||
private Long winningBidderId;
|
||||
|
||||
|
||||
/**
|
||||
* 招采一览表数据
|
||||
*/
|
||||
List<BusBillofquantitiesLimitListVo> billofquantitiesLimitList;
|
||||
|
||||
/**
|
||||
* 招标文件数据
|
||||
*/
|
||||
List<BusBiddingPlanAnnexVo> biddingPlanAnnexVoList;
|
||||
|
||||
}
|
@ -113,7 +113,17 @@ public class BusBiddingPlanVo implements Serializable {
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private Integer status;
|
||||
private Integer bidStatus;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 类型(2、招采,3、物资)
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 中标单位
|
||||
|
@ -3,6 +3,9 @@ package org.dromara.tender.domain.vo;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.tender.domain.TenderSupplierInput;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
@ -33,6 +36,12 @@ public class TenderSupplierInputVo implements Serializable {
|
||||
@ExcelProperty(value = "")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目Id
|
||||
*/
|
||||
@ExcelProperty(value = "项目Id")
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 企业登记注册类型
|
||||
*/
|
||||
|
@ -1,5 +1,8 @@
|
||||
package org.dromara.tender.service;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import org.dromara.tender.domain.vo.BusBiddingPlanAnnexVo;
|
||||
import org.dromara.tender.domain.vo.BusBiddingPlanDetailVo;
|
||||
import org.dromara.tender.domain.vo.BusBiddingPlanVo;
|
||||
import org.dromara.tender.domain.bo.BusBiddingPlanBo;
|
||||
import org.dromara.tender.domain.BusBiddingPlan;
|
||||
@ -58,10 +61,9 @@ public interface IBusBiddingPlanService extends IService<BusBiddingPlan>{
|
||||
* 修改招标计划
|
||||
*
|
||||
* @param bo 招标计划
|
||||
* @param bidFile
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(BusBiddingPlanBo bo, MultipartFile bidFile);
|
||||
Boolean updateByBo(BusBiddingPlanBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除招标计划信息
|
||||
@ -88,4 +90,13 @@ public interface IBusBiddingPlanService extends IService<BusBiddingPlan>{
|
||||
* @return
|
||||
*/
|
||||
Boolean editStatus(BusBiddingPlanBo bo);
|
||||
|
||||
/**
|
||||
* 查看招标文件
|
||||
* @param bo
|
||||
* @return
|
||||
*/
|
||||
List<BusBiddingPlanAnnexVo> getAnnex(BusBiddingPlanBo bo);
|
||||
|
||||
BusBiddingPlanDetailVo queryDetailById(Long id);
|
||||
}
|
||||
|
@ -1,6 +1,10 @@
|
||||
package org.dromara.tender.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
||||
import org.dromara.common.core.domain.event.ProcessEvent;
|
||||
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
@ -9,6 +13,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.design.domain.BusBillofquantitiesVersions;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.tender.domain.bo.BusBLimitListVersionsBo;
|
||||
import org.dromara.tender.domain.vo.BusBLimitListVersionsVo;
|
||||
@ -26,6 +32,7 @@ import java.util.Collection;
|
||||
* @author Lion Li
|
||||
* @date 2025-08-21
|
||||
*/
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class BusBLimitListVersionsServiceImpl extends ServiceImpl<BusBLimitListVersionsMapper, BusBLimitListVersions> implements IBusBLimitListVersionsService {
|
||||
@ -132,4 +139,60 @@ public class BusBLimitListVersionsServiceImpl extends ServiceImpl<BusBLimitListV
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
||||
* 正常使用只需#processEvent.flowCode=='leave1'
|
||||
* 示例为了方便则使用startsWith匹配了全部示例key
|
||||
*
|
||||
* @param processEvent 参数
|
||||
*/
|
||||
@org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('biddingEquipmentList')")
|
||||
public void processPlansHandlErequipmentList(ProcessEvent processEvent) {
|
||||
log.info("物资设备清单审核任务执行了{}", processEvent.toString());
|
||||
String id = processEvent.getBusinessId();
|
||||
LambdaQueryWrapper<BusBLimitListVersions> eq = new LambdaQueryWrapper<BusBLimitListVersions>()
|
||||
.eq(BusBLimitListVersions::getVersions, id);
|
||||
BusBLimitListVersions busBLimitListVersions = new BusBLimitListVersions();
|
||||
busBLimitListVersions.setStatus(processEvent.getStatus());
|
||||
//
|
||||
//
|
||||
boolean update = this.update(busBLimitListVersions, eq);
|
||||
// BusBiddingPlan biddingPlan = baseMapper.selectById(Long.valueOf(id));
|
||||
// if (biddingPlan == null) {
|
||||
// log.error("");
|
||||
// }
|
||||
// if (BusinessStatusEnum.DRAFT.getStatus().equals(biddingPlan.getStatus())) {
|
||||
// biddingPlan.setBidStatus(1);
|
||||
// }
|
||||
// biddingPlan.setStatus(processEvent.getStatus());
|
||||
// baseMapper.updateById(biddingPlan);
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行任务创建监听
|
||||
* 示例:也可通过 @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")进行判断
|
||||
* 在方法中判断流程节点key
|
||||
* if ("xxx".equals(processTaskEvent.getNodeCode())) {
|
||||
* //执行业务逻辑
|
||||
* }
|
||||
*
|
||||
* @param processTaskEvent 参数
|
||||
*/
|
||||
@org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('biddingEquipmentList')")
|
||||
public void processTaskPlansHandlerEquipmentList(ProcessTaskEvent processTaskEvent) {
|
||||
log.info("物资设备清单审核任务创建了{}", processTaskEvent.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* 监听删除流程事件
|
||||
* 正常使用只需#processDeleteEvent.flowCode=='leave1'
|
||||
* 示例为了方便则使用startsWith匹配了全部示例key
|
||||
*
|
||||
* @param processDeleteEvent 参数
|
||||
*/
|
||||
@EventListener(condition = "#processDeleteEvent.flowCode.endsWith('biddingEquipmentList')")
|
||||
public void processDeletePlansHandlerEquipmentList(ProcessDeleteEvent processDeleteEvent) {
|
||||
log.info("物资设备清单计划删除流程事件,技术标准文件审核任务执行了{}", processDeleteEvent.toString());
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,12 @@
|
||||
package org.dromara.tender.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
||||
import org.dromara.common.core.domain.event.ProcessEvent;
|
||||
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
||||
import org.dromara.common.core.enums.BusinessStatusEnum;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
@ -10,23 +16,28 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.oss.core.OssClient;
|
||||
import org.dromara.common.oss.factory.OssFactory;
|
||||
import org.dromara.design.domain.BusBillofquantities;
|
||||
import org.dromara.design.domain.BusBillofquantitiesVersions;
|
||||
import org.dromara.formalities.domain.BusFormalitiesAnnex;
|
||||
import org.dromara.system.domain.vo.SysOssUploadVo;
|
||||
import org.dromara.system.service.ISysOssService;
|
||||
import org.dromara.tender.domain.BusBiddingPlanAnnex;
|
||||
import org.dromara.tender.domain.BusTenderPlanningLimitList;
|
||||
import org.dromara.tender.domain.*;
|
||||
import org.dromara.tender.domain.bo.BusBiddingPlanAnnexBo;
|
||||
import org.dromara.tender.domain.bo.BusTenderPlanningLimitListBo;
|
||||
import org.dromara.tender.domain.vo.BusBiddingPlanAnnexVo;
|
||||
import org.dromara.tender.domain.vo.BusBiddingPlanDetailVo;
|
||||
import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo;
|
||||
import org.dromara.tender.mapper.BusTenderPlanningLimitListMapper;
|
||||
import org.dromara.tender.service.IBusBiddingPlanAnnexService;
|
||||
import org.dromara.tender.service.IBusBillofquantitiesLimitListService;
|
||||
import org.dromara.tender.service.ITenderSupplierInputService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.tender.domain.bo.BusBiddingPlanBo;
|
||||
import org.dromara.tender.domain.vo.BusBiddingPlanVo;
|
||||
import org.dromara.tender.domain.BusBiddingPlan;
|
||||
import org.dromara.tender.mapper.BusBiddingPlanMapper;
|
||||
import org.dromara.tender.service.IBusBiddingPlanService;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
@ -44,6 +55,7 @@ import static org.dromara.common.constant.MinioPathConstant.FormalitiesAnnex;
|
||||
* @author Lion Li
|
||||
* @date 2025-08-21
|
||||
*/
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class BusBiddingPlanServiceImpl extends ServiceImpl<BusBiddingPlanMapper, BusBiddingPlan> implements IBusBiddingPlanService {
|
||||
@ -62,6 +74,10 @@ public class BusBiddingPlanServiceImpl extends ServiceImpl<BusBiddingPlanMapper,
|
||||
@Autowired
|
||||
private ISysOssService ossService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private ITenderSupplierInputService tenderSupplierInputService;
|
||||
|
||||
/**
|
||||
* 查询招标计划
|
||||
*
|
||||
@ -106,6 +122,7 @@ public class BusBiddingPlanServiceImpl extends ServiceImpl<BusBiddingPlanMapper,
|
||||
lqw.eq(bo.getProjectId() != null, BusBiddingPlan::getProjectId, bo.getProjectId());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getDictName()), BusBiddingPlan::getDictName, bo.getDictName());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getName()), BusBiddingPlan::getName, bo.getName());
|
||||
lqw.eq(bo.getBidStatus() !=null, BusBiddingPlan::getBidStatus, bo.getBidStatus());
|
||||
lqw.eq(bo.getPlannedBiddingTime() != null, BusBiddingPlan::getPlannedBiddingTime, bo.getPlannedBiddingTime());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPlannedBiddingMethod()), BusBiddingPlan::getPlannedBiddingMethod, bo.getPlannedBiddingMethod());
|
||||
lqw.eq(bo.getPrice() != null, BusBiddingPlan::getPrice, bo.getPrice());
|
||||
@ -141,10 +158,12 @@ public class BusBiddingPlanServiceImpl extends ServiceImpl<BusBiddingPlanMapper,
|
||||
if (busBillofquantitiesLimitListVo == null) {
|
||||
throw new ServiceException("限价一览数据不存在");
|
||||
}
|
||||
if (busBillofquantitiesLimitListVo.getQuantity().compareTo(limitListBo.getNum().add(count !=null ? count: BigDecimal.valueOf(0))) < 0) {
|
||||
if (limitListBo.getNum().add(count !=null ? count: BigDecimal.ZERO).compareTo(busBillofquantitiesLimitListVo.getQuantity()) > 0) {
|
||||
throw new ServiceException(busBillofquantitiesLimitListVo.getName()+"数量超过了总数量");
|
||||
}
|
||||
price.add(busBillofquantitiesLimitListVo.getUnitPrice().multiply(limitListBo.getNum()));
|
||||
if (busBillofquantitiesLimitListVo.getUnitPrice() != null && limitListBo.getNum() != null){
|
||||
price = price.add(busBillofquantitiesLimitListVo.getUnitPrice().multiply(limitListBo.getNum()).setScale(2, RoundingMode.HALF_UP));
|
||||
}
|
||||
busTenderPlanningLimitList.setNum(limitListBo.getNum());
|
||||
planningLimitListList.add(busTenderPlanningLimitList);
|
||||
}
|
||||
@ -162,35 +181,28 @@ public class BusBiddingPlanServiceImpl extends ServiceImpl<BusBiddingPlanMapper,
|
||||
* 修改招标计划
|
||||
*
|
||||
* @param bo 招标计划
|
||||
* @param bidFile
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(BusBiddingPlanBo bo, MultipartFile bidFile) {
|
||||
if (bo.getStatus() == 1){
|
||||
public Boolean updateByBo(BusBiddingPlanBo bo) {
|
||||
if (bo.getBidStatus() == 1){
|
||||
throw new ServiceException("数据已锁定,不允许继续上传附件");
|
||||
}
|
||||
BusBiddingPlan update = MapstructUtils.convert(bo, BusBiddingPlan.class);
|
||||
BusBiddingPlanAnnexBo planAnnex = new BusBiddingPlanAnnexBo();
|
||||
planAnnex.setBiddingPlanId(bo.getId());
|
||||
List<BusBiddingPlanAnnexVo> planAnnexVoList = busBiddingPlanAnnexService.queryList(planAnnex);
|
||||
if (planAnnexVoList != null && !planAnnexVoList.isEmpty() ) {
|
||||
if (!bidFile.isEmpty()){
|
||||
SysOssUploadVo wordEntity = ossService.uploadWithNoSave(bidFile, ossService.minioFileName(FormalitiesAnnex,bidFile));
|
||||
update.setBidFile(wordEntity.getUrl());
|
||||
update.setBidFileName(wordEntity.getFileName());
|
||||
}
|
||||
// if (!contractFile.isEmpty()){
|
||||
// SysOssUploadVo wordEntity = ossService.uploadWithNoSave(contractFile, ossService.minioFileName(FormalitiesAnnex,contractFile));
|
||||
// update.setContractFile(wordEntity.getUrl());
|
||||
// update.setContractFileName(wordEntity.getFileName());
|
||||
//
|
||||
// }
|
||||
if (bo.getContractPrice() != null && bo.getBidFile().isEmpty()){
|
||||
throw new ServiceException("中标文件未上传");
|
||||
}
|
||||
if (bo.getWinningBidder() != null && bo.getBidFile().isEmpty()){
|
||||
throw new ServiceException("中标单位不能为空");
|
||||
if (update != null) {
|
||||
//修改合同额和中标单位时对前置条件进行校验
|
||||
if (bo.getContractPrice() !=null || bo.getWinningBidderId() != null){
|
||||
//判断招标文件是否上传
|
||||
BusBiddingPlanAnnexBo planAnnex = new BusBiddingPlanAnnexBo();
|
||||
planAnnex.setBiddingPlanId(bo.getId());
|
||||
List<BusBiddingPlanAnnexVo> planAnnexVoList = busBiddingPlanAnnexService.queryList(planAnnex);
|
||||
if (planAnnexVoList == null || planAnnexVoList.isEmpty() ) {
|
||||
throw new ServiceException("招标文件未上传");
|
||||
}
|
||||
//判断中标文件是否上传
|
||||
if ((bo.getBidFile() == null || bo.getBidFile().isEmpty()) && (bo.getContractPrice() != null ||bo.getWinningBidderId() != null)){
|
||||
throw new ServiceException("中标文件未上传");
|
||||
}
|
||||
}
|
||||
}
|
||||
// validEntityBeforeSave(update);
|
||||
@ -260,7 +272,7 @@ public class BusBiddingPlanServiceImpl extends ServiceImpl<BusBiddingPlanMapper,
|
||||
|
||||
@Override
|
||||
public Boolean uploadBiddingDocuments(BusBiddingPlanBo bo, List<MultipartFile> files) {
|
||||
if (bo.getStatus() == 1){
|
||||
if (bo.getBidStatus() == 1){
|
||||
throw new ServiceException("数据已锁定,不允许继续上传附件");
|
||||
}
|
||||
List<BusBiddingPlanAnnex> annexArrayList = new ArrayList<>();
|
||||
@ -268,6 +280,28 @@ public class BusBiddingPlanServiceImpl extends ServiceImpl<BusBiddingPlanMapper,
|
||||
if (files != null && !files.isEmpty()) {
|
||||
// 遍历文件数组
|
||||
for (MultipartFile file : files) {
|
||||
if (bo.getFileType() == 0){
|
||||
BusBiddingPlanAnnexBo planAnnex = new BusBiddingPlanAnnexBo();
|
||||
planAnnex.setBiddingPlanId(bo.getId());
|
||||
List<BusBiddingPlanAnnexVo> planAnnexVoList = busBiddingPlanAnnexService.queryList(planAnnex);
|
||||
BusBiddingPlan biddingPlan = baseMapper.selectById(bo.getId());
|
||||
//冗余中标单位名称
|
||||
TenderSupplierInput tenderSupplierInput = tenderSupplierInputService.getById(bo.getWinningBidderId());
|
||||
biddingPlan.setWinningBidderId(bo.getWinningBidderId());
|
||||
biddingPlan.setWinningBidder(tenderSupplierInput.getSupplierName());
|
||||
if (biddingPlan.getPlannedBiddingTime() == null){
|
||||
throw new ServiceException("计划招标时间不能为空!!");
|
||||
}
|
||||
if (planAnnexVoList == null || planAnnexVoList.isEmpty() ) {
|
||||
throw new ServiceException("请先上传招标文件再上传中标文件!!");
|
||||
}
|
||||
if (!file.isEmpty()){
|
||||
SysOssUploadVo wordEntity = ossService.uploadWithNoSave(file, ossService.minioFileName(FormalitiesAnnex,file));
|
||||
biddingPlan.setBidFile(wordEntity.getUrl());
|
||||
biddingPlan.setBidFileName(wordEntity.getFileName());
|
||||
return baseMapper.updateById(biddingPlan) > 0;
|
||||
}
|
||||
}
|
||||
// 处理单个文件前,先判断是否为空文件(isEmpty())
|
||||
if (file.isEmpty()) {
|
||||
System.out.println("跳过空文件");
|
||||
@ -287,9 +321,52 @@ public class BusBiddingPlanServiceImpl extends ServiceImpl<BusBiddingPlanMapper,
|
||||
@Override
|
||||
public Boolean editStatus(BusBiddingPlanBo bo) {
|
||||
BusBiddingPlan update = MapstructUtils.convert(bo, BusBiddingPlan.class);
|
||||
BusBiddingPlan biddingPlan = baseMapper.selectById(bo.getId());
|
||||
BusBiddingPlanAnnexBo planAnnex = new BusBiddingPlanAnnexBo();
|
||||
planAnnex.setBiddingPlanId(bo.getId());
|
||||
List<BusBiddingPlanAnnexVo> planAnnexVoList = busBiddingPlanAnnexService.queryList(planAnnex);
|
||||
if (biddingPlan.getPlannedBiddingTime() == null){
|
||||
throw new ServiceException("请填写计划招标时间!!");
|
||||
}
|
||||
if (planAnnexVoList == null || planAnnexVoList.isEmpty() ) {
|
||||
throw new ServiceException("请上传招标文件!!");
|
||||
}
|
||||
if (biddingPlan.getBidFile() == null || biddingPlan.getBidFile().isEmpty()) {
|
||||
throw new ServiceException("请上传中标通知书!!");
|
||||
|
||||
}
|
||||
if (biddingPlan.getWinningBidderId() == null){
|
||||
throw new ServiceException("请填写中标单位!!");
|
||||
}
|
||||
if (biddingPlan.getContractPrice() == null){
|
||||
throw new ServiceException("请填写合同额!!");
|
||||
}
|
||||
update.setBidStatus(1);
|
||||
return baseMapper.updateById(update) >0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BusBiddingPlanAnnexVo> getAnnex(BusBiddingPlanBo bo) {
|
||||
BusBiddingPlanAnnexBo annexBo = new BusBiddingPlanAnnexBo();
|
||||
annexBo.setBiddingPlanId(bo.getId());
|
||||
|
||||
return busBiddingPlanAnnexService.queryList(annexBo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BusBiddingPlanDetailVo queryDetailById(Long id) {
|
||||
BusBiddingPlan biddingPlan = baseMapper.selectById(id);
|
||||
BusBiddingPlanBo bo = new BusBiddingPlanBo();
|
||||
bo.setId(id);
|
||||
BusBiddingPlanDetailVo detailVo = new BusBiddingPlanDetailVo();
|
||||
BeanUtil.copyProperties(biddingPlan, detailVo);
|
||||
List<BusBillofquantitiesLimitListVo> more = getMore(bo);
|
||||
detailVo.setBillofquantitiesLimitList(more);
|
||||
List<BusBiddingPlanAnnexVo> annex = getAnnex(bo);
|
||||
detailVo.setBiddingPlanAnnexVoList(annex);
|
||||
return detailVo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归构建树形结构
|
||||
* @param parentId 父节点ID(顶级节点为0)
|
||||
|
@ -1,6 +1,11 @@
|
||||
package org.dromara.tender.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
||||
import org.dromara.common.core.domain.event.ProcessEvent;
|
||||
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
||||
import org.dromara.common.core.enums.BusinessStatusEnum;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
@ -10,12 +15,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.utils.excel.ExcelDynamicReader;
|
||||
import org.dromara.design.domain.BusBillofquantitiesVersions;
|
||||
import org.dromara.tender.domain.BusBiddingPlan;
|
||||
import org.dromara.tender.domain.bo.BusBLimitListVersionsBo;
|
||||
import org.dromara.tender.domain.bo.TenderAllVersionNumbersReq;
|
||||
import org.dromara.tender.domain.vo.BusBLimitListVersionsVo;
|
||||
import org.dromara.tender.enums.LimitListTypeEnum;
|
||||
import org.dromara.tender.service.IBusBLimitListVersionsService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.tender.domain.bo.BusBillofquantitiesLimitListBo;
|
||||
import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo;
|
||||
@ -35,6 +43,7 @@ import java.util.stream.Collectors;
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class BusBillofquantitiesLimitListServiceImpl extends ServiceImpl<BusBillofquantitiesLimitListMapper, BusBillofquantitiesLimitList> implements IBusBillofquantitiesLimitListService {
|
||||
|
@ -119,6 +119,7 @@ public class BusSegmentedIndicatorPlanningServiceImpl extends ServiceImpl<BusSeg
|
||||
BusSegmentedIndicatorPlanning add = MapstructUtils.convert(bo, BusSegmentedIndicatorPlanning.class);
|
||||
// validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
BigDecimal price = BigDecimal.valueOf(0);
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
if (bo.getLimitListBos() != null && !bo.getLimitListBos().isEmpty()) {
|
||||
@ -138,9 +139,14 @@ public class BusSegmentedIndicatorPlanningServiceImpl extends ServiceImpl<BusSeg
|
||||
}
|
||||
busIndicatorPlanningLimitList.setNum(limitListBo.getNum());
|
||||
planningLimitListList.add(busIndicatorPlanningLimitList);
|
||||
if (busBillofquantitiesLimitListVo.getUnitPrice() != null && limitListBo.getNum() != null){
|
||||
price = price.add(busBillofquantitiesLimitListVo.getUnitPrice().multiply(limitListBo.getNum()).setScale(2, RoundingMode.HALF_UP));
|
||||
}
|
||||
}
|
||||
add.setPrice(price);
|
||||
//批量新增
|
||||
indicatorPlanningLimitListMapper.insertBatch(planningLimitListList);
|
||||
baseMapper.updateById(add);
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
|
@ -17,6 +17,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.system.domain.vo.SysOssUploadVo;
|
||||
import org.dromara.system.domain.vo.SysOssVo;
|
||||
import org.dromara.system.service.ISysOssService;
|
||||
import org.dromara.tender.domain.BusBiddingPlan;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.tender.domain.bo.TenderSupplierInputBo;
|
||||
@ -89,6 +90,7 @@ public class TenderSupplierInputServiceImpl extends ServiceImpl<TenderSupplierIn
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<TenderSupplierInput> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(TenderSupplierInput::getId);
|
||||
lqw.eq(bo.getProjectId() != null, TenderSupplierInput::getProjectId, bo.getProjectId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSupplierType()), TenderSupplierInput::getSupplierType, bo.getSupplierType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getInputFile()), TenderSupplierInput::getInputFile, bo.getInputFile());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getSupplierName()), TenderSupplierInput::getSupplierName, bo.getSupplierName());
|
||||
|
Reference in New Issue
Block a user