From e19ef3003a044bfc4931f38e1ed437253fe02659 Mon Sep 17 00:00:00 2001 From: dfdg <2710245601@qq.com> Date: Mon, 8 Sep 2025 20:00:29 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...BusMaterialbatchdemandplanServiceImpl.java | 36 +++-- .../service/impl/GpsEquipmentServiceImpl.java | 48 +++++- .../controller/BusEnterRoadController.java | 2 + .../controller/BusLandBlockController.java | 2 + .../BusTenderPlanLimitListController.java | 11 +- .../domain/BusBillofquantitiesLimitList.java | 9 ++ .../bo/BusBillofquantitiesLimitListBo.java | 10 ++ .../tender/domain/vo/BusBiddingPlanVo.java | 5 + .../vo/BusBillofquantitiesLimitListVo.java | 10 ++ .../BusBillofquantitiesLimitListWuZiVo.java | 153 ++++++++++++++++++ .../service/IBusBiddingPlanAnnexService.java | 2 + .../IBusBillofquantitiesLimitListService.java | 3 + .../impl/BusBiddingPlanAnnexServiceImpl.java | 5 + .../impl/BusBiddingPlanServiceImpl.java | 4 + ...sBillofquantitiesLimitListServiceImpl.java | 22 ++- .../BusBillofquantitiesLimitListMapper.xml | 4 + 16 files changed, 303 insertions(+), 23 deletions(-) create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/vo/BusBillofquantitiesLimitListWuZiVo.java diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusMaterialbatchdemandplanServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusMaterialbatchdemandplanServiceImpl.java index 92eccbfa..268ceb6e 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusMaterialbatchdemandplanServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusMaterialbatchdemandplanServiceImpl.java @@ -88,24 +88,26 @@ public class BusMaterialbatchdemandplanServiceImpl extends ServiceImpl queryPageList(BusMaterialbatchdemandplanBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); - BusBiddingPlanBo bo1 = new BusBiddingPlanBo(); - bo1.setProjectId(bo.getProjectId()); - bo1.setType("2"); - bo1.setWinningBidderId(bo.getSupplierId()); - List busBiddingPlanVos = busBiddingPlanService.getBillofquantitiesLimitListVo(bo1); - if (busBiddingPlanVos == null || busBiddingPlanVos.isEmpty()) { - throw new ServiceException("该供应商暂无材料"); - } - Set hashSet = new HashSet<>(); - busBiddingPlanVos.stream().forEach(vo -> { - hashSet.add(vo.getName()+"+"+vo.getSpecification()); - }); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - List list = result.getRecords().stream().filter(vo -> { - String key = vo.getName() + "+" + vo.getSpecification(); // 拼接字符串(需与 Set 中格式一致) - return hashSet.contains(key); // 仅保留 Set 中存在的数据 - }).toList(); - result.setRecords(list); + if (bo.getSupplierId()!=null){ + BusBiddingPlanBo bo1 = new BusBiddingPlanBo(); + bo1.setProjectId(bo.getProjectId()); + bo1.setType("2"); + bo1.setWinningBidderId(bo.getSupplierId()); + List busBiddingPlanVos = busBiddingPlanService.getBillofquantitiesLimitListVo(bo1); + if (busBiddingPlanVos == null || busBiddingPlanVos.isEmpty()) { + throw new ServiceException("该供应商暂无材料"); + } + Set hashSet = new HashSet<>(); + busBiddingPlanVos.stream().forEach(vo -> { + hashSet.add(vo.getName()+"+"+vo.getSpecification()); + }); + List list = result.getRecords().stream().filter(vo -> { + String key = vo.getName() + "+" + vo.getSpecification(); // 拼接字符串(需与 Set 中格式一致) + return hashSet.contains(key); // 仅保留 Set 中存在的数据 + }).toList(); + result.setRecords(list); + } return TableDataInfo.build(result); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/gps/service/impl/GpsEquipmentServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/gps/service/impl/GpsEquipmentServiceImpl.java index fd72aaa3..3a0b0504 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/gps/service/impl/GpsEquipmentServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/gps/service/impl/GpsEquipmentServiceImpl.java @@ -16,6 +16,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.common.redis.utils.RedisUtils; +import org.dromara.common.websocket.dto.WebSocketMessageDto; +import org.dromara.common.websocket.utils.WebSocketUtils; import org.dromara.gps.domain.GpsManmachine; import org.dromara.gps.domain.bo.GpsEquipmentSonBo; import org.dromara.gps.domain.vo.GpsProjectVo; @@ -39,6 +41,7 @@ import org.dromara.gps.service.IGpsEquipmentService; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.Duration; import java.util.*; import java.util.stream.Collectors; @@ -212,8 +215,8 @@ public class GpsEquipmentServiceImpl extends ServiceImpl list = busBillofquantitiesLimitListService.queryList(bo); - ExcelUtil.exportExcel(list, "限价一览", BusBillofquantitiesLimitListVo.class, response); + if (LimitListTypeEnum.SUB_COMPANY.getCode().equals(bo.getType())){ + List list = busBillofquantitiesLimitListService.queryList(bo); + ExcelUtil.exportExcel(list, "限价一览", BusBillofquantitiesLimitListVo.class, response); + }else { + List list = busBillofquantitiesLimitListService.queryVoList(bo); + ExcelUtil.exportExcel(list, "限价一览", BusBillofquantitiesLimitListWuZiVo.class, response); + } } /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/BusBillofquantitiesLimitList.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/BusBillofquantitiesLimitList.java index 29a54e97..b1dab8d2 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/BusBillofquantitiesLimitList.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/BusBillofquantitiesLimitList.java @@ -99,6 +99,15 @@ public class BusBillofquantitiesLimitList extends BaseEntity { * 总价 */ // private BigDecimal price; + /** + * 供应单位 + */ + private String supplier; + + /** + * 合同编号 + */ + private String contractNumber; /** * 备注 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/bo/BusBillofquantitiesLimitListBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/bo/BusBillofquantitiesLimitListBo.java index 5c22d147..2e3ea111 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/bo/BusBillofquantitiesLimitListBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/bo/BusBillofquantitiesLimitListBo.java @@ -95,6 +95,16 @@ public class BusBillofquantitiesLimitListBo extends BaseEntity { */ private BigDecimal taxRate; + /** + * 供应单位 + */ + private String supplier; + + /** + * 合同编号 + */ + private String contractNumber; + /** * 总价 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/vo/BusBiddingPlanVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/vo/BusBiddingPlanVo.java index ebac3a96..d91b561d 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/vo/BusBiddingPlanVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/vo/BusBiddingPlanVo.java @@ -135,5 +135,10 @@ public class BusBiddingPlanVo implements Serializable { */ private Long winningBidderId; + /** + * 招标文件数量 + */ + private Long annexCount; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/vo/BusBillofquantitiesLimitListVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/vo/BusBillofquantitiesLimitListVo.java index 6d34236d..de0fe078 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/vo/BusBillofquantitiesLimitListVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/vo/BusBillofquantitiesLimitListVo.java @@ -135,6 +135,16 @@ public class BusBillofquantitiesLimitListVo implements Serializable { @ExcelProperty(value = "备注") private String remark; + /** + * 供应单位 + */ + private String supplier; + + /** + * 合同编号 + */ + private String contractNumber; + /** * 子节点 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/vo/BusBillofquantitiesLimitListWuZiVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/vo/BusBillofquantitiesLimitListWuZiVo.java new file mode 100644 index 00000000..3b2c777b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/vo/BusBillofquantitiesLimitListWuZiVo.java @@ -0,0 +1,153 @@ +package org.dromara.tender.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.tender.domain.BusBillofquantitiesLimitList; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + + +/** + * 限价一览视图对象 bus_billofquantities_limit_list + * + * @author Lion Li + * @date 2025-08-19 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BusBillofquantitiesLimitList.class) +public class BusBillofquantitiesLimitListWuZiVo 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 type; + + /** + * 名称 + */ + @ColumnWidth(50) + @ExcelProperty(value = "名称") + private String name; + + + /** + * 规格 + */ + @ExcelProperty(value = "规格") + private String specification; + + /** + * 单位 + */ + @ExcelProperty(value = "单位") + private String unit; + + /** + * 数量 + */ + @ExcelProperty(value = "数量") + private BigDecimal quantity; + + /** + * 使用数量 + */ + private BigDecimal useQuantity; + + /** + * 单价 + */ + @ExcelProperty(value = "单价") + private BigDecimal unitPrice; + + /** + * 税率 + */ + @ExcelProperty(value = "税率(%)") + private BigDecimal taxRate; + + /** + * 总价 + */ +// @ExcelProperty(value = "总价") + private BigDecimal price; + + /** + * 供应单位 + */ + @ExcelProperty(value = "供应单位") + private String supplier; + + /** + * 合同编号 + */ + @ExcelProperty(value = "合同编号") + private String contractNumber; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + + + /** + * 子节点 + */ + private List children = new ArrayList<>(); + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/IBusBiddingPlanAnnexService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/IBusBiddingPlanAnnexService.java index a57379f9..200a5aa4 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/IBusBiddingPlanAnnexService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/IBusBiddingPlanAnnexService.java @@ -67,4 +67,6 @@ public interface IBusBiddingPlanAnnexService extends IService ids, Boolean isValid); + + Long getCount(Long id); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/IBusBillofquantitiesLimitListService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/IBusBillofquantitiesLimitListService.java index 68a12fd4..3881fafa 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/IBusBillofquantitiesLimitListService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/IBusBillofquantitiesLimitListService.java @@ -9,6 +9,7 @@ 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.dromara.tender.domain.vo.BusBillofquantitiesLimitListWuZiVo; import org.springframework.web.multipart.MultipartFile; import java.util.Collection; @@ -109,4 +110,6 @@ public interface IBusBillofquantitiesLimitListService extends IService queryVoByIds(List ids); + + List queryVoList(BusBillofquantitiesLimitListBo bo); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBiddingPlanAnnexServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBiddingPlanAnnexServiceImpl.java index 5651de93..d0a7bb73 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBiddingPlanAnnexServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBiddingPlanAnnexServiceImpl.java @@ -130,4 +130,9 @@ public class BusBiddingPlanAnnexServiceImpl extends ServiceImpl 0; } + + @Override + public Long getCount(Long id) { + return baseMapper.selectCount(new LambdaQueryWrapper().eq(BusBiddingPlanAnnex::getBiddingPlanId,id)); + } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBiddingPlanServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBiddingPlanServiceImpl.java index 14421e31..6feda2d1 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBiddingPlanServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBiddingPlanServiceImpl.java @@ -90,6 +90,7 @@ public class BusBiddingPlanServiceImpl extends ServiceImpl queryPageList(BusBiddingPlanBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + result.getRecords().forEach(item -> item.setAnnexCount(busBiddingPlanAnnexService.getCount(item.getId()))); return TableDataInfo.build(result); } @@ -195,6 +196,9 @@ public class BusBiddingPlanServiceImpl extends ServiceImpl0){ + throw new ServiceException("合同金额不能超过总价"); + } } } // validEntityBeforeSave(update); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBillofquantitiesLimitListServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBillofquantitiesLimitListServiceImpl.java index 7426804d..c1f31454 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBillofquantitiesLimitListServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBillofquantitiesLimitListServiceImpl.java @@ -22,10 +22,12 @@ import org.dromara.tender.domain.bo.BusBillofquantitiesLimitListBo; import org.dromara.tender.domain.bo.TenderAllVersionNumbersReq; import org.dromara.tender.domain.vo.BusBLimitListVersionsVo; import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo; +import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListWuZiVo; import org.dromara.tender.enums.LimitListTypeEnum; import org.dromara.tender.mapper.BusBillofquantitiesLimitListMapper; import org.dromara.tender.service.IBusBLimitListVersionsService; import org.dromara.tender.service.IBusBillofquantitiesLimitListService; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -193,7 +195,6 @@ public class BusBillofquantitiesLimitListServiceImpl extends ServiceImpl busBillofquantities = new ArrayList(); @@ -270,6 +271,10 @@ public class BusBillofquantitiesLimitListServiceImpl extends ServiceImpl queryVoList(BusBillofquantitiesLimitListBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + List listVoList = baseMapper.selectVoList(lqw); + List wuZiVoArrayList = new ArrayList<>(); + listVoList.forEach(item -> { + BusBillofquantitiesLimitListWuZiVo vo = new BusBillofquantitiesLimitListWuZiVo(); + BeanUtils.copyProperties(item, vo); + wuZiVoArrayList.add(vo); + }); + return wuZiVoArrayList; + } + /** * 递归构建树形结构 * diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/tender/BusBillofquantitiesLimitListMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/tender/BusBillofquantitiesLimitListMapper.xml index be001c58..dbab0013 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/tender/BusBillofquantitiesLimitListMapper.xml +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/tender/BusBillofquantitiesLimitListMapper.xml @@ -97,6 +97,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bbll.quantity as quantity, bbll.unit_price as unitPrice, bbll.tax_rate as taxRate, + bbll.supplier as supplier, + bbll.contract_number as contractNumber, bbll.remark as remark, SUM(btpll.num) AS useQuantity FROM @@ -138,6 +140,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bbll.quantity as quantity, bbll.tax_rate as taxRate, bbll.unit_price as unitPrice, + bbll.supplier as supplier, + bbll.contract_number as contractNumber, bbll.remark as remark, SUM(btpll.num) AS useQuantity FROM