Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
@ -261,6 +261,8 @@ springdoc:
|
||||
packages-to-scan: org.dromara.out
|
||||
- group: 19.消息模块
|
||||
packages-to-scan: org.dromara.message
|
||||
- group: 20.合同模块
|
||||
packages-to-scan: org.dromara.ctr
|
||||
# knife4j的增强配置,不需要增强可以不配
|
||||
knife4j:
|
||||
enable: true
|
||||
|
@ -0,0 +1,105 @@
|
||||
package org.dromara.bidding.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
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.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.bidding.domain.vo.BusBiddingLimitListVo;
|
||||
import org.dromara.bidding.domain.bo.BusBiddingLimitListBo;
|
||||
import org.dromara.bidding.service.IBusBiddingLimitListService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 成本-投标
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/bidding/biddingLimitList")
|
||||
public class BusBiddingLimitListController extends BaseController {
|
||||
|
||||
private final IBusBiddingLimitListService busBiddingLimitListService;
|
||||
|
||||
/**
|
||||
* 查询成本-投标列表
|
||||
*/
|
||||
@SaCheckPermission("bidding:biddingLimitList:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BusBiddingLimitListVo> list(BusBiddingLimitListBo bo, PageQuery pageQuery) {
|
||||
return busBiddingLimitListService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出成本-投标列表
|
||||
*/
|
||||
@SaCheckPermission("bidding:biddingLimitList:export")
|
||||
@Log(title = "成本-投标", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BusBiddingLimitListBo bo, HttpServletResponse response) {
|
||||
List<BusBiddingLimitListVo> list = busBiddingLimitListService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "成本-投标", BusBiddingLimitListVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取成本-投标详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("bidding:biddingLimitList:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BusBiddingLimitListVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(busBiddingLimitListService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增成本-投标
|
||||
*/
|
||||
@SaCheckPermission("bidding:biddingLimitList:add")
|
||||
@Log(title = "成本-投标", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BusBiddingLimitListBo bo) {
|
||||
return toAjax(busBiddingLimitListService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改成本-投标
|
||||
*/
|
||||
@SaCheckPermission("bidding:biddingLimitList:edit")
|
||||
@Log(title = "成本-投标", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusBiddingLimitListBo bo) {
|
||||
return toAjax(busBiddingLimitListService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除成本-投标
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("bidding:biddingLimitList:remove")
|
||||
@Log(title = "成本-投标", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(busBiddingLimitListService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,105 @@
|
||||
package org.dromara.bidding.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
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.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.bidding.domain.vo.BusBiddingUserVo;
|
||||
import org.dromara.bidding.domain.bo.BusBiddingUserBo;
|
||||
import org.dromara.bidding.service.IBusBiddingUserService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 招投标人员
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/bidding/biddingUser")
|
||||
public class BusBiddingUserController extends BaseController {
|
||||
|
||||
private final IBusBiddingUserService busBiddingUserService;
|
||||
|
||||
/**
|
||||
* 查询招投标人员列表
|
||||
*/
|
||||
@SaCheckPermission("bidding:biddingUser:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BusBiddingUserVo> list(BusBiddingUserBo bo, PageQuery pageQuery) {
|
||||
return busBiddingUserService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出招投标人员列表
|
||||
*/
|
||||
@SaCheckPermission("bidding:biddingUser:export")
|
||||
@Log(title = "招投标人员", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BusBiddingUserBo bo, HttpServletResponse response) {
|
||||
List<BusBiddingUserVo> list = busBiddingUserService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "招投标人员", BusBiddingUserVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取招投标人员详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("bidding:biddingUser:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BusBiddingUserVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(busBiddingUserService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增招投标人员
|
||||
*/
|
||||
@SaCheckPermission("bidding:biddingUser:add")
|
||||
@Log(title = "招投标人员", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BusBiddingUserBo bo) {
|
||||
return toAjax(busBiddingUserService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改招投标人员
|
||||
*/
|
||||
@SaCheckPermission("bidding:biddingUser:edit")
|
||||
@Log(title = "招投标人员", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusBiddingUserBo bo) {
|
||||
return toAjax(busBiddingUserService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除招投标人员
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("bidding:biddingUser:remove")
|
||||
@Log(title = "招投标人员", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(busBiddingUserService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,105 @@
|
||||
package org.dromara.bidding.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
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.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
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;
|
||||
|
||||
/**
|
||||
* 中标项目一览
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/bidding/listOfWinningBids")
|
||||
public class BusListOfWinningBidsController extends BaseController {
|
||||
|
||||
private final IBusListOfWinningBidsService busListOfWinningBidsService;
|
||||
|
||||
/**
|
||||
* 查询中标项目一览列表
|
||||
*/
|
||||
@SaCheckPermission("bidding:listOfWinningBids:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BusListOfWinningBidsVo> list(BusListOfWinningBidsBo bo, PageQuery pageQuery) {
|
||||
return busListOfWinningBidsService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出中标项目一览列表
|
||||
*/
|
||||
@SaCheckPermission("bidding:listOfWinningBids:export")
|
||||
@Log(title = "中标项目一览", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BusListOfWinningBidsBo bo, HttpServletResponse response) {
|
||||
List<BusListOfWinningBidsVo> list = busListOfWinningBidsService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "中标项目一览", BusListOfWinningBidsVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取中标项目一览详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("bidding:listOfWinningBids:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BusListOfWinningBidsVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(busListOfWinningBidsService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增中标项目一览
|
||||
*/
|
||||
@SaCheckPermission("bidding:listOfWinningBids:add")
|
||||
@Log(title = "中标项目一览", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BusListOfWinningBidsBo bo) {
|
||||
return toAjax(busListOfWinningBidsService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改中标项目一览
|
||||
*/
|
||||
@SaCheckPermission("bidding:listOfWinningBids:edit")
|
||||
@Log(title = "中标项目一览", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusListOfWinningBidsBo bo) {
|
||||
return toAjax(busListOfWinningBidsService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除中标项目一览
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("bidding:listOfWinningBids:remove")
|
||||
@Log(title = "中标项目一览", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(busListOfWinningBidsService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,91 @@
|
||||
package org.dromara.bidding.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 成本-投标对象 bus_bidding_limit_list
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("bus_bidding_limit_list")
|
||||
public class BusBiddingLimitList extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目Id
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 版本号
|
||||
*/
|
||||
private String versions;
|
||||
|
||||
/**
|
||||
* 表名
|
||||
*/
|
||||
private String sheet;
|
||||
|
||||
/**
|
||||
* 子ID
|
||||
*/
|
||||
private String sid;
|
||||
|
||||
/**
|
||||
* 父ID
|
||||
*/
|
||||
private String pid;
|
||||
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
private String num;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 规格
|
||||
*/
|
||||
private String specification;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private Long quantity;
|
||||
|
||||
/**
|
||||
* 单价
|
||||
*/
|
||||
private Long unitPrice;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
package org.dromara.bidding.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 招投标人员对象 bus_bidding_user
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("bus_bidding_user")
|
||||
public class BusBiddingUser extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 招投标人员id
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 招投标人员姓名
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,123 @@
|
||||
package org.dromara.bidding.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 中标项目一览对象 bus_list_of_winning_bids
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("bus_list_of_winning_bids")
|
||||
public class BusListOfWinningBids extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 项目状态
|
||||
*/
|
||||
private String projectStatus;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 中标价(原币)
|
||||
*/
|
||||
private Long winningBidOriginal;
|
||||
|
||||
/**
|
||||
* 汇率
|
||||
*/
|
||||
private Long exchangeRate;
|
||||
|
||||
/**
|
||||
* 币种
|
||||
*/
|
||||
private String currency;
|
||||
|
||||
/**
|
||||
* 所属主体
|
||||
*/
|
||||
private String subject;
|
||||
|
||||
/**
|
||||
* 中标价
|
||||
*/
|
||||
private Long winningBid;
|
||||
|
||||
/**
|
||||
* 中标日期
|
||||
*/
|
||||
private Date bidWinningDate;
|
||||
|
||||
/**
|
||||
* 投标保证金
|
||||
*/
|
||||
private Long bidDeposit;
|
||||
|
||||
/**
|
||||
* 是否退还
|
||||
*/
|
||||
private String whetherSendBack;
|
||||
|
||||
/**
|
||||
* 建设单位(客户)
|
||||
*/
|
||||
private String construction;
|
||||
|
||||
/**
|
||||
* 总造价
|
||||
*/
|
||||
private Long totalCost;
|
||||
|
||||
/**
|
||||
* 立项申请人
|
||||
*/
|
||||
private String projectApplicant;
|
||||
|
||||
/**
|
||||
* 立项部门
|
||||
*/
|
||||
private String projectApplicantDept;
|
||||
|
||||
/**
|
||||
* 立项申请日期
|
||||
*/
|
||||
private Date projectApplicantTime;
|
||||
|
||||
/**
|
||||
* 流程状态
|
||||
*/
|
||||
private String processStatus;
|
||||
|
||||
/**
|
||||
* 项目编号
|
||||
*/
|
||||
private String projectNumbering;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,92 @@
|
||||
package org.dromara.bidding.domain.bo;
|
||||
|
||||
import org.dromara.bidding.domain.BusBiddingLimitList;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
/**
|
||||
* 成本-投标业务对象 bus_bidding_limit_list
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = BusBiddingLimitList.class, reverseConvertGenerate = false)
|
||||
public class BusBiddingLimitListBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目Id
|
||||
*/
|
||||
@NotNull(message = "项目Id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 版本号
|
||||
*/
|
||||
@NotBlank(message = "版本号不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String versions;
|
||||
|
||||
/**
|
||||
* 表名
|
||||
*/
|
||||
private String sheet;
|
||||
|
||||
/**
|
||||
* 子ID
|
||||
*/
|
||||
private String sid;
|
||||
|
||||
/**
|
||||
* 父ID
|
||||
*/
|
||||
private String pid;
|
||||
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
private String num;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 规格
|
||||
*/
|
||||
private String specification;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private Long quantity;
|
||||
|
||||
/**
|
||||
* 单价
|
||||
*/
|
||||
private Long unitPrice;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
package org.dromara.bidding.domain.bo;
|
||||
|
||||
import org.dromara.bidding.domain.BusBiddingUser;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
/**
|
||||
* 招投标人员业务对象 bus_bidding_user
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = BusBiddingUser.class, reverseConvertGenerate = false)
|
||||
public class BusBiddingUserBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@NotNull(message = "不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
@NotNull(message = "项目id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 招投标人员id
|
||||
*/
|
||||
@NotNull(message = "招投标人员id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 招投标人员姓名
|
||||
*/
|
||||
@NotBlank(message = "招投标人员姓名不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String userName;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,123 @@
|
||||
package org.dromara.bidding.domain.bo;
|
||||
|
||||
import org.dromara.bidding.domain.BusListOfWinningBids;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
* 中标项目一览业务对象 bus_list_of_winning_bids
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = BusListOfWinningBids.class, reverseConvertGenerate = false)
|
||||
public class BusListOfWinningBidsBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@NotNull(message = "不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
@NotNull(message = "项目id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 项目状态
|
||||
*/
|
||||
private String projectStatus;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 中标价(原币)
|
||||
*/
|
||||
private Long winningBidOriginal;
|
||||
|
||||
/**
|
||||
* 汇率
|
||||
*/
|
||||
private Long exchangeRate;
|
||||
|
||||
/**
|
||||
* 币种
|
||||
*/
|
||||
private String currency;
|
||||
|
||||
/**
|
||||
* 所属主体
|
||||
*/
|
||||
private String subject;
|
||||
|
||||
/**
|
||||
* 中标价
|
||||
*/
|
||||
private Long winningBid;
|
||||
|
||||
/**
|
||||
* 中标日期
|
||||
*/
|
||||
private Date bidWinningDate;
|
||||
|
||||
/**
|
||||
* 投标保证金
|
||||
*/
|
||||
private Long bidDeposit;
|
||||
|
||||
/**
|
||||
* 是否退还
|
||||
*/
|
||||
private String whetherSendBack;
|
||||
|
||||
/**
|
||||
* 建设单位(客户)
|
||||
*/
|
||||
private String construction;
|
||||
|
||||
/**
|
||||
* 总造价
|
||||
*/
|
||||
private Long totalCost;
|
||||
|
||||
/**
|
||||
* 立项申请人
|
||||
*/
|
||||
private String projectApplicant;
|
||||
|
||||
/**
|
||||
* 立项部门
|
||||
*/
|
||||
private String projectApplicantDept;
|
||||
|
||||
/**
|
||||
* 立项申请日期
|
||||
*/
|
||||
private Date projectApplicantTime;
|
||||
|
||||
/**
|
||||
* 流程状态
|
||||
*/
|
||||
private String processStatus;
|
||||
|
||||
/**
|
||||
* 项目编号
|
||||
*/
|
||||
private String projectNumbering;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,110 @@
|
||||
package org.dromara.bidding.domain.vo;
|
||||
|
||||
import org.dromara.bidding.domain.BusBiddingLimitList;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 成本-投标视图对象 bus_bidding_limit_list
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = BusBiddingLimitList.class)
|
||||
public class BusBiddingLimitListVo 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 versions;
|
||||
|
||||
/**
|
||||
* 表名
|
||||
*/
|
||||
@ExcelProperty(value = "表名")
|
||||
private String sheet;
|
||||
|
||||
/**
|
||||
* 子ID
|
||||
*/
|
||||
@ExcelProperty(value = "子ID")
|
||||
private String sid;
|
||||
|
||||
/**
|
||||
* 父ID
|
||||
*/
|
||||
@ExcelProperty(value = "父ID")
|
||||
private String pid;
|
||||
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
@ExcelProperty(value = "编号")
|
||||
private String num;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
@ExcelProperty(value = "名称")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 规格
|
||||
*/
|
||||
@ExcelProperty(value = "规格")
|
||||
private String specification;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
@ExcelProperty(value = "单位")
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
@ExcelProperty(value = "数量")
|
||||
private Long quantity;
|
||||
|
||||
/**
|
||||
* 单价
|
||||
*/
|
||||
@ExcelProperty(value = "单价")
|
||||
private Long unitPrice;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
package org.dromara.bidding.domain.vo;
|
||||
|
||||
import org.dromara.bidding.domain.BusBiddingUser;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 招投标人员视图对象 bus_bidding_user
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = BusBiddingUser.class)
|
||||
public class BusBiddingUserVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@ExcelProperty(value = "")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
@ExcelProperty(value = "项目id")
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 招投标人员id
|
||||
*/
|
||||
@ExcelProperty(value = "招投标人员id")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 招投标人员姓名
|
||||
*/
|
||||
@ExcelProperty(value = "招投标人员姓名")
|
||||
private String userName;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,150 @@
|
||||
package org.dromara.bidding.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.dromara.bidding.domain.BusListOfWinningBids;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 中标项目一览视图对象 bus_list_of_winning_bids
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = BusListOfWinningBids.class)
|
||||
public class BusListOfWinningBidsVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@ExcelProperty(value = "")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
@ExcelProperty(value = "项目id")
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 项目状态
|
||||
*/
|
||||
@ExcelProperty(value = "项目状态")
|
||||
private String projectStatus;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
@ExcelProperty(value = "项目名称")
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 中标价(原币)
|
||||
*/
|
||||
@ExcelProperty(value = "中标价", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "原=币")
|
||||
private Long winningBidOriginal;
|
||||
|
||||
/**
|
||||
* 汇率
|
||||
*/
|
||||
@ExcelProperty(value = "汇率")
|
||||
private Long exchangeRate;
|
||||
|
||||
/**
|
||||
* 币种
|
||||
*/
|
||||
@ExcelProperty(value = "币种")
|
||||
private String currency;
|
||||
|
||||
/**
|
||||
* 所属主体
|
||||
*/
|
||||
@ExcelProperty(value = "所属主体")
|
||||
private String subject;
|
||||
|
||||
/**
|
||||
* 中标价
|
||||
*/
|
||||
@ExcelProperty(value = "中标价")
|
||||
private Long winningBid;
|
||||
|
||||
/**
|
||||
* 中标日期
|
||||
*/
|
||||
@ExcelProperty(value = "中标日期")
|
||||
private Date bidWinningDate;
|
||||
|
||||
/**
|
||||
* 投标保证金
|
||||
*/
|
||||
@ExcelProperty(value = "投标保证金")
|
||||
private Long bidDeposit;
|
||||
|
||||
/**
|
||||
* 是否退还
|
||||
*/
|
||||
@ExcelProperty(value = "是否退还")
|
||||
private String whetherSendBack;
|
||||
|
||||
/**
|
||||
* 建设单位(客户)
|
||||
*/
|
||||
@ExcelProperty(value = "建设单位", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "客=户")
|
||||
private String construction;
|
||||
|
||||
/**
|
||||
* 总造价
|
||||
*/
|
||||
@ExcelProperty(value = "总造价")
|
||||
private Long totalCost;
|
||||
|
||||
/**
|
||||
* 立项申请人
|
||||
*/
|
||||
@ExcelProperty(value = "立项申请人")
|
||||
private String projectApplicant;
|
||||
|
||||
/**
|
||||
* 立项部门
|
||||
*/
|
||||
@ExcelProperty(value = "立项部门")
|
||||
private String projectApplicantDept;
|
||||
|
||||
/**
|
||||
* 立项申请日期
|
||||
*/
|
||||
@ExcelProperty(value = "立项申请日期")
|
||||
private Date projectApplicantTime;
|
||||
|
||||
/**
|
||||
* 流程状态
|
||||
*/
|
||||
@ExcelProperty(value = "流程状态")
|
||||
private String processStatus;
|
||||
|
||||
/**
|
||||
* 项目编号
|
||||
*/
|
||||
@ExcelProperty(value = "项目编号")
|
||||
private String projectNumbering;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package org.dromara.bidding.mapper;
|
||||
|
||||
import org.dromara.bidding.domain.BusBiddingLimitList;
|
||||
import org.dromara.bidding.domain.vo.BusBiddingLimitListVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 成本-投标Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
public interface BusBiddingLimitListMapper extends BaseMapperPlus<BusBiddingLimitList, BusBiddingLimitListVo> {
|
||||
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package org.dromara.bidding.mapper;
|
||||
|
||||
import org.dromara.bidding.domain.BusBiddingUser;
|
||||
import org.dromara.bidding.domain.vo.BusBiddingUserVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 招投标人员Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
public interface BusBiddingUserMapper extends BaseMapperPlus<BusBiddingUser, BusBiddingUserVo> {
|
||||
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package org.dromara.bidding.mapper;
|
||||
|
||||
import org.dromara.bidding.domain.BusListOfWinningBids;
|
||||
import org.dromara.bidding.domain.vo.BusListOfWinningBidsVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 中标项目一览Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
public interface BusListOfWinningBidsMapper extends BaseMapperPlus<BusListOfWinningBids, BusListOfWinningBidsVo> {
|
||||
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package org.dromara.bidding.service;
|
||||
|
||||
import org.dromara.bidding.domain.vo.BusBiddingLimitListVo;
|
||||
import org.dromara.bidding.domain.bo.BusBiddingLimitListBo;
|
||||
import org.dromara.bidding.domain.BusBiddingLimitList;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 成本-投标Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
public interface IBusBiddingLimitListService extends IService<BusBiddingLimitList>{
|
||||
|
||||
/**
|
||||
* 查询成本-投标
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 成本-投标
|
||||
*/
|
||||
BusBiddingLimitListVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询成本-投标列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 成本-投标分页列表
|
||||
*/
|
||||
TableDataInfo<BusBiddingLimitListVo> queryPageList(BusBiddingLimitListBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的成本-投标列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 成本-投标列表
|
||||
*/
|
||||
List<BusBiddingLimitListVo> queryList(BusBiddingLimitListBo bo);
|
||||
|
||||
/**
|
||||
* 新增成本-投标
|
||||
*
|
||||
* @param bo 成本-投标
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(BusBiddingLimitListBo bo);
|
||||
|
||||
/**
|
||||
* 修改成本-投标
|
||||
*
|
||||
* @param bo 成本-投标
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(BusBiddingLimitListBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除成本-投标信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package org.dromara.bidding.service;
|
||||
|
||||
import org.dromara.bidding.domain.vo.BusBiddingUserVo;
|
||||
import org.dromara.bidding.domain.bo.BusBiddingUserBo;
|
||||
import org.dromara.bidding.domain.BusBiddingUser;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 招投标人员Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
public interface IBusBiddingUserService extends IService<BusBiddingUser>{
|
||||
|
||||
/**
|
||||
* 查询招投标人员
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 招投标人员
|
||||
*/
|
||||
BusBiddingUserVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询招投标人员列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 招投标人员分页列表
|
||||
*/
|
||||
TableDataInfo<BusBiddingUserVo> queryPageList(BusBiddingUserBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的招投标人员列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 招投标人员列表
|
||||
*/
|
||||
List<BusBiddingUserVo> queryList(BusBiddingUserBo bo);
|
||||
|
||||
/**
|
||||
* 新增招投标人员
|
||||
*
|
||||
* @param bo 招投标人员
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(BusBiddingUserBo bo);
|
||||
|
||||
/**
|
||||
* 修改招投标人员
|
||||
*
|
||||
* @param bo 招投标人员
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(BusBiddingUserBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除招投标人员信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
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.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 中标项目一览Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
public interface IBusListOfWinningBidsService extends IService<BusListOfWinningBids>{
|
||||
|
||||
/**
|
||||
* 查询中标项目一览
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 中标项目一览
|
||||
*/
|
||||
BusListOfWinningBidsVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询中标项目一览列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 中标项目一览分页列表
|
||||
*/
|
||||
TableDataInfo<BusListOfWinningBidsVo> queryPageList(BusListOfWinningBidsBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的中标项目一览列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 中标项目一览列表
|
||||
*/
|
||||
List<BusListOfWinningBidsVo> queryList(BusListOfWinningBidsBo bo);
|
||||
|
||||
/**
|
||||
* 新增中标项目一览
|
||||
*
|
||||
* @param bo 中标项目一览
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(BusListOfWinningBidsBo bo);
|
||||
|
||||
/**
|
||||
* 修改中标项目一览
|
||||
*
|
||||
* @param bo 中标项目一览
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(BusListOfWinningBidsBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除中标项目一览信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
@ -0,0 +1,141 @@
|
||||
package org.dromara.bidding.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
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.springframework.stereotype.Service;
|
||||
import org.dromara.bidding.domain.bo.BusBiddingLimitListBo;
|
||||
import org.dromara.bidding.domain.vo.BusBiddingLimitListVo;
|
||||
import org.dromara.bidding.domain.BusBiddingLimitList;
|
||||
import org.dromara.bidding.mapper.BusBiddingLimitListMapper;
|
||||
import org.dromara.bidding.service.IBusBiddingLimitListService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 成本-投标Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class BusBiddingLimitListServiceImpl extends ServiceImpl<BusBiddingLimitListMapper, BusBiddingLimitList> implements IBusBiddingLimitListService {
|
||||
|
||||
private final BusBiddingLimitListMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询成本-投标
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 成本-投标
|
||||
*/
|
||||
@Override
|
||||
public BusBiddingLimitListVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询成本-投标列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 成本-投标分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<BusBiddingLimitListVo> queryPageList(BusBiddingLimitListBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<BusBiddingLimitList> lqw = buildQueryWrapper(bo);
|
||||
Page<BusBiddingLimitListVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的成本-投标列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 成本-投标列表
|
||||
*/
|
||||
@Override
|
||||
public List<BusBiddingLimitListVo> queryList(BusBiddingLimitListBo bo) {
|
||||
LambdaQueryWrapper<BusBiddingLimitList> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<BusBiddingLimitList> buildQueryWrapper(BusBiddingLimitListBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<BusBiddingLimitList> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(BusBiddingLimitList::getId);
|
||||
lqw.eq(bo.getProjectId() != null, BusBiddingLimitList::getProjectId, bo.getProjectId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getVersions()), BusBiddingLimitList::getVersions, bo.getVersions());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSheet()), BusBiddingLimitList::getSheet, bo.getSheet());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSid()), BusBiddingLimitList::getSid, bo.getSid());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPid()), BusBiddingLimitList::getPid, bo.getPid());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getNum()), BusBiddingLimitList::getNum, bo.getNum());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getName()), BusBiddingLimitList::getName, bo.getName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSpecification()), BusBiddingLimitList::getSpecification, bo.getSpecification());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getUnit()), BusBiddingLimitList::getUnit, bo.getUnit());
|
||||
lqw.eq(bo.getQuantity() != null, BusBiddingLimitList::getQuantity, bo.getQuantity());
|
||||
lqw.eq(bo.getUnitPrice() != null, BusBiddingLimitList::getUnitPrice, bo.getUnitPrice());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增成本-投标
|
||||
*
|
||||
* @param bo 成本-投标
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(BusBiddingLimitListBo bo) {
|
||||
BusBiddingLimitList add = MapstructUtils.convert(bo, BusBiddingLimitList.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改成本-投标
|
||||
*
|
||||
* @param bo 成本-投标
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(BusBiddingLimitListBo bo) {
|
||||
BusBiddingLimitList update = MapstructUtils.convert(bo, BusBiddingLimitList.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(BusBiddingLimitList entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除成本-投标信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
@ -0,0 +1,133 @@
|
||||
package org.dromara.bidding.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
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.springframework.stereotype.Service;
|
||||
import org.dromara.bidding.domain.bo.BusBiddingUserBo;
|
||||
import org.dromara.bidding.domain.vo.BusBiddingUserVo;
|
||||
import org.dromara.bidding.domain.BusBiddingUser;
|
||||
import org.dromara.bidding.mapper.BusBiddingUserMapper;
|
||||
import org.dromara.bidding.service.IBusBiddingUserService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 招投标人员Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class BusBiddingUserServiceImpl extends ServiceImpl<BusBiddingUserMapper, BusBiddingUser> implements IBusBiddingUserService {
|
||||
|
||||
private final BusBiddingUserMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询招投标人员
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 招投标人员
|
||||
*/
|
||||
@Override
|
||||
public BusBiddingUserVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询招投标人员列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 招投标人员分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<BusBiddingUserVo> queryPageList(BusBiddingUserBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<BusBiddingUser> lqw = buildQueryWrapper(bo);
|
||||
Page<BusBiddingUserVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的招投标人员列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 招投标人员列表
|
||||
*/
|
||||
@Override
|
||||
public List<BusBiddingUserVo> queryList(BusBiddingUserBo bo) {
|
||||
LambdaQueryWrapper<BusBiddingUser> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<BusBiddingUser> buildQueryWrapper(BusBiddingUserBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<BusBiddingUser> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(BusBiddingUser::getId);
|
||||
lqw.eq(bo.getProjectId() != null, BusBiddingUser::getProjectId, bo.getProjectId());
|
||||
lqw.eq(bo.getUserId() != null, BusBiddingUser::getUserId, bo.getUserId());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getUserName()), BusBiddingUser::getUserName, bo.getUserName());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增招投标人员
|
||||
*
|
||||
* @param bo 招投标人员
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(BusBiddingUserBo bo) {
|
||||
BusBiddingUser add = MapstructUtils.convert(bo, BusBiddingUser.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改招投标人员
|
||||
*
|
||||
* @param bo 招投标人员
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(BusBiddingUserBo bo) {
|
||||
BusBiddingUser update = MapstructUtils.convert(bo, BusBiddingUser.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(BusBiddingUser entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除招投标人员信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
@ -0,0 +1,148 @@
|
||||
package org.dromara.bidding.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
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.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 java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 中标项目一览Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class BusListOfWinningBidsServiceImpl extends ServiceImpl<BusListOfWinningBidsMapper, BusListOfWinningBids> implements IBusListOfWinningBidsService {
|
||||
|
||||
private final BusListOfWinningBidsMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询中标项目一览
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 中标项目一览
|
||||
*/
|
||||
@Override
|
||||
public BusListOfWinningBidsVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询中标项目一览列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 中标项目一览分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<BusListOfWinningBidsVo> queryPageList(BusListOfWinningBidsBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<BusListOfWinningBids> lqw = buildQueryWrapper(bo);
|
||||
Page<BusListOfWinningBidsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的中标项目一览列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 中标项目一览列表
|
||||
*/
|
||||
@Override
|
||||
public List<BusListOfWinningBidsVo> queryList(BusListOfWinningBidsBo bo) {
|
||||
LambdaQueryWrapper<BusListOfWinningBids> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<BusListOfWinningBids> buildQueryWrapper(BusListOfWinningBidsBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
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());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增中标项目一览
|
||||
*
|
||||
* @param bo 中标项目一览
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(BusListOfWinningBidsBo bo) {
|
||||
BusListOfWinningBids add = MapstructUtils.convert(bo, BusListOfWinningBids.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改中标项目一览
|
||||
*
|
||||
* @param bo 中标项目一览
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(BusListOfWinningBidsBo bo) {
|
||||
BusListOfWinningBids update = MapstructUtils.convert(bo, BusListOfWinningBids.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(BusListOfWinningBids entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除中标项目一览信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
@ -6,6 +6,9 @@ import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.ctr.domain.bo.CtrFileBo;
|
||||
import org.dromara.ctr.domain.vo.CtrFileVo;
|
||||
import org.dromara.ctr.service.ICtrFileService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
@ -36,6 +39,8 @@ public class CtrExpensesContractController extends BaseController {
|
||||
|
||||
private final ICtrExpensesContractService ctrExpensesContractService;
|
||||
|
||||
private final ICtrFileService fileService;
|
||||
|
||||
/**
|
||||
* 查询支出合同列表
|
||||
*/
|
||||
@ -102,4 +107,13 @@ public class CtrExpensesContractController extends BaseController {
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(ctrExpensesContractService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询附件列表
|
||||
*/
|
||||
@SaCheckPermission("ctr:expensesContract:query")
|
||||
@GetMapping("/file/list")
|
||||
public TableDataInfo<CtrFileVo> list(CtrFileBo bo, PageQuery pageQuery) {
|
||||
return fileService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,9 @@ import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.ctr.domain.bo.CtrFileBo;
|
||||
import org.dromara.ctr.domain.vo.CtrFileVo;
|
||||
import org.dromara.ctr.service.ICtrFileService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
@ -36,6 +39,8 @@ public class CtrIncomeContractController extends BaseController {
|
||||
|
||||
private final ICtrIncomeContractService ctrIncomeContractService;
|
||||
|
||||
private final ICtrFileService fileService;
|
||||
|
||||
/**
|
||||
* 查询收入合同列表
|
||||
*/
|
||||
@ -102,4 +107,14 @@ public class CtrIncomeContractController extends BaseController {
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(ctrIncomeContractService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询附件列表
|
||||
*/
|
||||
@SaCheckPermission("ctr:incomeContract:query")
|
||||
@GetMapping("/file/list")
|
||||
public TableDataInfo<CtrFileVo> list(CtrFileBo bo, PageQuery pageQuery) {
|
||||
return fileService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
}
|
||||
|
@ -29,7 +29,6 @@ public class CtrFileBo extends BaseEntity {
|
||||
/**
|
||||
* 合同ID
|
||||
*/
|
||||
@NotNull(message = "合同ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long contractId;
|
||||
|
||||
/**
|
||||
|
@ -1,6 +1,9 @@
|
||||
package org.dromara.ctr.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.ctr.domain.CtrExpensesContract;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
@ -53,6 +56,12 @@ public class CtrExpensesContractVo implements Serializable {
|
||||
@ExcelProperty(value = "合同类型")
|
||||
private String contractType;
|
||||
|
||||
/**
|
||||
* 合同类型名称
|
||||
*/
|
||||
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "contractType",other = "expenses_contract_type")
|
||||
private String contractTypeName;
|
||||
|
||||
/**
|
||||
* 供应商
|
||||
*/
|
||||
|
@ -1,6 +1,9 @@
|
||||
package org.dromara.ctr.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.ctr.domain.CtrIncomeContract;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
@ -53,6 +56,13 @@ public class CtrIncomeContractVo implements Serializable {
|
||||
@ExcelProperty(value = "合同类型")
|
||||
private String contractType;
|
||||
|
||||
|
||||
/**
|
||||
* 合同类型名称
|
||||
*/
|
||||
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "contractType",other = "income_contract_type")
|
||||
private String contractTypeName;
|
||||
|
||||
/**
|
||||
* 业主单位
|
||||
*/
|
||||
|
@ -1,5 +1,6 @@
|
||||
package org.dromara.ctr.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
@ -9,6 +10,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.ctr.domain.CtrFile;
|
||||
import org.dromara.ctr.service.ICtrFileService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.ctr.domain.bo.CtrExpensesContractBo;
|
||||
import org.dromara.ctr.domain.vo.CtrExpensesContractVo;
|
||||
@ -32,6 +35,8 @@ public class CtrExpensesContractServiceImpl extends ServiceImpl<CtrExpensesContr
|
||||
|
||||
private final CtrExpensesContractMapper baseMapper;
|
||||
|
||||
private final ICtrFileService fileService;
|
||||
|
||||
/**
|
||||
* 查询支出合同
|
||||
*
|
||||
@ -94,6 +99,13 @@ public class CtrExpensesContractServiceImpl extends ServiceImpl<CtrExpensesContr
|
||||
CtrExpensesContract add = MapstructUtils.convert(bo, CtrExpensesContract.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
|
||||
if(!bo.getFileList().isEmpty()){
|
||||
List<CtrFile> convert = MapstructUtils.convert(bo.getFileList(), CtrFile.class);
|
||||
convert.forEach(item -> item.setContractId(add.getId()));
|
||||
fileService.saveBatch(convert);
|
||||
}
|
||||
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package org.dromara.ctr.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
@ -131,4 +132,5 @@ public class CtrFileServiceImpl extends ServiceImpl<CtrFileMapper, CtrFile> impl
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -9,6 +9,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.ctr.domain.CtrFile;
|
||||
import org.dromara.ctr.service.ICtrFileService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.ctr.domain.bo.CtrIncomeContractBo;
|
||||
import org.dromara.ctr.domain.vo.CtrIncomeContractVo;
|
||||
@ -32,6 +34,8 @@ public class CtrIncomeContractServiceImpl extends ServiceImpl<CtrIncomeContractM
|
||||
|
||||
private final CtrIncomeContractMapper baseMapper;
|
||||
|
||||
private final ICtrFileService fileService;
|
||||
|
||||
/**
|
||||
* 查询收入合同
|
||||
*
|
||||
@ -93,6 +97,11 @@ public class CtrIncomeContractServiceImpl extends ServiceImpl<CtrIncomeContractM
|
||||
CtrIncomeContract add = MapstructUtils.convert(bo, CtrIncomeContract.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if(!bo.getFileList().isEmpty()){
|
||||
List<CtrFile> convert = MapstructUtils.convert(bo.getFileList(), CtrFile.class);
|
||||
convert.forEach(item -> item.setContractId(add.getId()));
|
||||
fileService.saveBatch(convert);
|
||||
}
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.cailiaoshebei.domain.BusCailiaoshebeiPici;
|
||||
import org.dromara.common.core.constant.HttpStatus;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
||||
import org.dromara.common.core.domain.event.ProcessEvent;
|
||||
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
||||
@ -340,6 +341,9 @@ public class DesVolumeCatalogServiceImpl extends ServiceImpl<DesVolumeCatalogMap
|
||||
.orderByDesc(DesVolumeFile::getCreateTime)
|
||||
|
||||
);
|
||||
if(list.isEmpty()){
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<Long> list1 = list.stream().map(DesVolumeFile::getVolumeCatalogId).distinct().toList();
|
||||
|
||||
return baseMapper.selectList(Wrappers.lambdaQuery(DesVolumeCatalog.class)
|
||||
|
@ -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.design.domain.bo.ImportExcelFileReq;
|
||||
import org.dromara.design.domain.bo.ObtainAllVersionNumbersReq;
|
||||
import org.dromara.design.domain.bo.SheetListReq;
|
||||
import org.dromara.design.domain.vo.BusBillofquantitiesVersionsVo;
|
||||
@ -24,6 +25,7 @@ import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo;
|
||||
import org.dromara.tender.domain.bo.BusBillofquantitiesLimitListBo;
|
||||
import org.dromara.tender.service.IBusBillofquantitiesLimitListService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* 限价一览
|
||||
@ -85,6 +87,17 @@ public class BusBillofquantitiesLimitListController extends BaseController {
|
||||
ExcelUtil.exportExcel(list, "限价一览", BusBillofquantitiesLimitListVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入excel
|
||||
*/
|
||||
@SaCheckPermission("design:billofquantitiesLimitList:importExcelFile")
|
||||
@Log(title = "导入excel", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/importExcelFile")
|
||||
public R<Void> importExcelFile(Long projectId, @RequestParam("file") MultipartFile file) throws Exception {
|
||||
return toAjax(busBillofquantitiesLimitListService.importExcelFile(projectId, file));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取限价一览详细信息
|
||||
*
|
||||
|
@ -46,8 +46,8 @@ public class BusSegmentedIndicatorPlanningController extends BaseController {
|
||||
if (bo.getProjectId() == null) {
|
||||
throw new ServiceException("项目id不能为空");
|
||||
}
|
||||
if (bo.getDictId() == null) {
|
||||
throw new ServiceException("分包类型id不能为空");
|
||||
if (bo.getDictName() == null) {
|
||||
throw new ServiceException("分包类型不能为空");
|
||||
}
|
||||
return busSegmentedIndicatorPlanningService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
@ -36,10 +36,6 @@ public class BusSegmentedIndicatorPlanning extends BaseEntity {
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 分包类型id
|
||||
*/
|
||||
private Long dictId;
|
||||
|
||||
/**
|
||||
* 分包类型名称
|
||||
|
@ -39,15 +39,12 @@ public class BusSegmentedIndicatorPlanningBo extends BaseEntity {
|
||||
@NotNull(message = "项目Id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 分包类型id
|
||||
*/
|
||||
@NotNull(message = "分包类型id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long dictId;
|
||||
|
||||
|
||||
/**
|
||||
* 分包类型名称
|
||||
*/
|
||||
@NotBlank(message = "分包类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String dictName;
|
||||
|
||||
/**
|
||||
|
@ -44,11 +44,6 @@ public class BusSegmentedIndicatorPlanningVo implements Serializable {
|
||||
@ExcelProperty(value = "项目Id")
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 分包类型id
|
||||
*/
|
||||
@ExcelProperty(value = "分包类型id")
|
||||
private Long dictId;
|
||||
|
||||
/**
|
||||
* 分包类型名称
|
||||
|
@ -8,6 +8,8 @@ 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;
|
||||
|
||||
@ -84,4 +86,12 @@ public interface IBusBillofquantitiesLimitListService extends IService<BusBillof
|
||||
* 获取指定版本的sheet
|
||||
*/
|
||||
List<String> sheetList(BusBillofquantitiesLimitListBo bo);
|
||||
|
||||
/**
|
||||
* 导入excel
|
||||
* @param id
|
||||
* @param file
|
||||
* @return
|
||||
*/
|
||||
Boolean importExcelFile(Long id, MultipartFile file) throws Exception;
|
||||
}
|
||||
|
@ -1,21 +1,26 @@
|
||||
package org.dromara.tender.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.excel.coryUtils.ExcelReader;
|
||||
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.common.utils.excel.ExcelDynamicReader;
|
||||
import org.dromara.design.domain.BusBillofquantities;
|
||||
import org.dromara.design.domain.dto.MaterialsAndEquipmentExcelDto;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.tender.domain.bo.BusBillofquantitiesLimitListBo;
|
||||
import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo;
|
||||
import org.dromara.tender.domain.BusBillofquantitiesLimitList;
|
||||
import org.dromara.tender.mapper.BusBillofquantitiesLimitListMapper;
|
||||
import org.dromara.tender.service.IBusBillofquantitiesLimitListService;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
@ -150,6 +155,7 @@ public class BusBillofquantitiesLimitListServiceImpl extends ServiceImpl<BusBill
|
||||
//获取所有数据
|
||||
List<BusBillofquantitiesLimitListVo> listVoList = queryList(bo);
|
||||
listVoList.stream().filter(vo -> vo.getUnitPrice() !=null && vo.getUnitPrice().compareTo(BigDecimal.ZERO) != 0)
|
||||
.filter(vo ->vo.getQuantity() !=null && vo.getQuantity().compareTo(BigDecimal.ZERO) != 0)
|
||||
.forEach(item -> {
|
||||
item.setPrice(item.getUnitPrice().multiply(item.getQuantity()).setScale(2, RoundingMode.HALF_UP));
|
||||
});
|
||||
@ -190,6 +196,47 @@ public class BusBillofquantitiesLimitListServiceImpl extends ServiceImpl<BusBill
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean importExcelFile(Long id, MultipartFile file) throws Exception{
|
||||
|
||||
|
||||
// 跳过1行(表头),读取0到6列(共7列),映射到ExcelData实体类
|
||||
List<BusBillofquantitiesLimitListBo> dataList = ExcelDynamicReader.readExcel(
|
||||
file, // 上传的文件
|
||||
1, // 跳过1行(表头)
|
||||
0, // 从第0列开始
|
||||
12, // 到第5列结束
|
||||
BusBillofquantitiesLimitListBo.class // 目标实体类
|
||||
);
|
||||
List<BusBillofquantitiesLimitList> busBillofquantities = new ArrayList<BusBillofquantitiesLimitList>();
|
||||
dataList.stream()
|
||||
.filter(Objects::nonNull) // 过滤掉 null 对象
|
||||
.filter(data-> data.getUnitPrice() !=null && data.getUnitPrice().compareTo(BigDecimal.ZERO) != 0)
|
||||
.filter(data ->data.getQuantity() !=null && data.getQuantity().compareTo(BigDecimal.ZERO) != 0)
|
||||
.forEach(item -> {
|
||||
BusBillofquantitiesLimitList limitList = new BusBillofquantitiesLimitList();
|
||||
limitList.setId(item.getId());
|
||||
limitList.setProjectId(item.getProjectId());
|
||||
limitList.setUnitPrice(item.getUnitPrice());
|
||||
busBillofquantities.add(limitList);
|
||||
});
|
||||
|
||||
|
||||
// //1、获取到解析数据
|
||||
// ExcelReader.ExcelData excelData = ExcelReader.readExcelFromMultipartFile(file);
|
||||
// // 2. 解析所有工作表,转换为带父子关系的ExcelMaterial列表 解析所有Sheet数据,按规则生成sid和pid
|
||||
// List<BusBillofquantitiesLimitList> allMaterials = new ArrayList<>();
|
||||
// for (ExcelReader.SheetData sheetData : excelData.getSheetDataList()) {
|
||||
//// String sheetName = sheetData.getSheetName();
|
||||
// List<List<String>> rowDataList = sheetData.getData();
|
||||
//
|
||||
// //获取字段为id和单价
|
||||
// List<BusBillofquantitiesLimitList> limitListArrayList = new ArrayList<>();
|
||||
//
|
||||
// }
|
||||
return baseMapper.updateBatchById(busBillofquantities);
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归构建树形结构
|
||||
* @param parentId 父节点ID(顶级节点为0)
|
||||
|
@ -90,7 +90,7 @@ public class BusSegmentedIndicatorPlanningServiceImpl extends ServiceImpl<BusSeg
|
||||
LambdaQueryWrapper<BusSegmentedIndicatorPlanning> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(BusSegmentedIndicatorPlanning::getPlannedBiddingTime);
|
||||
lqw.eq(bo.getProjectId() != null, BusSegmentedIndicatorPlanning::getProjectId, bo.getProjectId());
|
||||
lqw.eq(bo.getDictId() != null, BusSegmentedIndicatorPlanning::getDictId, bo.getDictId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDictName()), BusSegmentedIndicatorPlanning::getDictName, bo.getDictName());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getName()), BusSegmentedIndicatorPlanning::getName, bo.getName());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getContent()), BusSegmentedIndicatorPlanning::getContent, bo.getContent());
|
||||
lqw.eq(bo.getPlannedBiddingTime() != null, BusSegmentedIndicatorPlanning::getPlannedBiddingTime, bo.getPlannedBiddingTime());
|
||||
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.bidding.mapper.BusBiddingLimitListMapper">
|
||||
|
||||
</mapper>
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.bidding.mapper.BusBiddingUserMapper">
|
||||
|
||||
</mapper>
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.bidding.mapper.BusListOfWinningBidsMapper">
|
||||
|
||||
</mapper>
|
Reference in New Issue
Block a user