From e7376086f93a104819916908d3a36ce5598dad9e Mon Sep 17 00:00:00 2001 From: dfdg <2710245601@qq.com> Date: Thu, 11 Dec 2025 20:28:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E4=BE=9B=E5=BA=94=E5=95=86=E7=94=B1?= =?UTF-8?q?=E5=BB=BA=E7=AE=A1=E8=BD=AC=E5=88=B0=E6=96=B0=E4=B8=AD=E5=A4=A7?= =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=95=86=EF=BC=8C=E6=80=BB=E4=BD=93=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E6=88=90=E6=9C=AC=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/excel/coryUtils/ExcelReader.java | 3 +- .../controller/BusPurchaseDocController.java | 11 +- .../app/BusPurchaseDocAppController.java | 14 +- ...BusMaterialbatchdemandplanServiceImpl.java | 2 +- .../impl/SubContractorServiceImpl.java | 16 ++- ...usBillofquantitiesVersionsServiceImpl.java | 49 +++++++ .../domain/vo/materials/MatMaterialsVo.java | 4 +- .../service/impl/MatMaterialsServiceImpl.java | 11 +- .../dto/project/BusProjectCreateReq.java | 2 +- .../dto/project/BusProjectUpdateReq.java | 2 +- .../service/impl/BusProjectServiceImpl.java | 70 ++++------ .../service/impl/SysUserServiceImpl.java | 4 +- .../controller/BusBiddingPlanController.java | 14 +- .../IBusBillofquantitiesLimitListService.java | 9 ++ .../impl/BusBiddingPlanServiceImpl.java | 18 ++- ...sBillofquantitiesLimitListServiceImpl.java | 28 ++++ .../service/Impl/ChatHistoryServiceImpl.java | 1 - .../controller/XzdSupplierInfoController.java | 11 ++ .../controller/XzdCbysZjhcbController.java | 25 ++++ .../costBudget/domain/XzdCbysZjhcb.java | 9 ++ .../costBudget/domain/bo/XzdCbysZjhcbBo.java | 28 +++- .../costBudget/domain/vo/XzdCbysZjhcbVo.java | 23 +++- .../service/IXzdCbysZjhcbService.java | 14 ++ .../service/impl/XzdCbysZjhcbServiceImpl.java | 124 ++++++++++++++---- .../xzd/service/IXzdSupplierInfoService.java | 12 +- .../impl/XzdSupplierInfoServiceImpl.java | 84 +++++++++++- 26 files changed, 465 insertions(+), 123 deletions(-) diff --git a/xinnengyuan/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/coryUtils/ExcelReader.java b/xinnengyuan/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/coryUtils/ExcelReader.java index 509db055..6557b797 100644 --- a/xinnengyuan/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/coryUtils/ExcelReader.java +++ b/xinnengyuan/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/coryUtils/ExcelReader.java @@ -73,8 +73,7 @@ public class ExcelReader { // 从MultipartFile获取输入流 try (InputStream stream = file.getInputStream(); - org.apache.poi.ss.usermodel.Workbook workbook = isXlsx ? - new XSSFWorkbook(stream) : new HSSFWorkbook(stream)) { + Workbook workbook = WorkbookFactory.create(stream)) { for (int sheetIndex = 0; sheetIndex < workbook.getNumberOfSheets(); sheetIndex++) { org.apache.poi.ss.usermodel.Sheet sheet = workbook.getSheetAt(sheetIndex); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusPurchaseDocController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusPurchaseDocController.java index 7e03b1db..c97eced8 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusPurchaseDocController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusPurchaseDocController.java @@ -35,7 +35,9 @@ import org.dromara.design.service.IBusBillofquantitiesService; import org.dromara.design.service.IBusBillofquantitiesVersionsService; import org.dromara.tender.domain.bo.TenderSupplierInputReq; import org.dromara.tender.domain.vo.TenderSupplierInputVo; -import org.dromara.tender.service.ITenderSupplierInputService; +//import org.dromara.tender.service.ITenderSupplierInputService; +import org.dromara.xzd.domain.vo.XzdSupplierInfoVo; +import org.dromara.xzd.service.IXzdSupplierInfoService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -69,7 +71,8 @@ public class BusPurchaseDocController extends BaseController { private final IBusBillofquantitiesService busBillofquantitiesService; private final IBusMrpBaseService busMrpBaseService; - private final ITenderSupplierInputService tenderSupplierInputService; + private final IXzdSupplierInfoService xzdSupplierInfoService; +// private final ITenderSupplierInputService tenderSupplierInputService; private final IBusLtnService busLtnService; /** @@ -96,8 +99,8 @@ public class BusPurchaseDocController extends BaseController { */ @SaCheckPermission(value = {"cailiaoshebei:purchaseDoc:add","cailiaoshebei:purchaseDoc:edit"},mode = SaMode.OR) @GetMapping("/getListByName") - public R> getListByName(TenderSupplierInputReq req) { - return R.ok(tenderSupplierInputService.getListByName(req)); + public R> getListByName(TenderSupplierInputReq req) { + return R.ok(xzdSupplierInfoService.getListByName(req)); } /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/app/BusPurchaseDocAppController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/app/BusPurchaseDocAppController.java index 24ca7da1..e2dcb590 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/app/BusPurchaseDocAppController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/app/BusPurchaseDocAppController.java @@ -3,6 +3,7 @@ package org.dromara.cailiaoshebei.controller.app; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; @@ -30,7 +31,10 @@ import org.dromara.design.service.IBusBillofquantitiesService; import org.dromara.design.service.IBusBillofquantitiesVersionsService; import org.dromara.tender.domain.bo.TenderSupplierInputBo; import org.dromara.tender.domain.vo.TenderSupplierInputVo; -import org.dromara.tender.service.ITenderSupplierInputService; +//import org.dromara.tender.service.ITenderSupplierInputService; +import org.dromara.xzd.domain.bo.XzdSupplierInfoBo; +import org.dromara.xzd.domain.vo.XzdSupplierInfoVo; +import org.dromara.xzd.service.IXzdSupplierInfoService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -63,7 +67,9 @@ public class BusPurchaseDocAppController extends BaseController { private final IBusBillofquantitiesService busBillofquantitiesService; - private final ITenderSupplierInputService tenderSupplierInputService; +// private final ITenderSupplierInputService tenderSupplierInputService; + @Resource + private IXzdSupplierInfoService supplierInfoService; /** @@ -78,8 +84,8 @@ public class BusPurchaseDocAppController extends BaseController { * 查询供应商入库列表 */ @GetMapping("/supList") - public TableDataInfo list(TenderSupplierInputBo bo, PageQuery pageQuery) { - return tenderSupplierInputService.queryPageList(bo, pageQuery); + public TableDataInfo list(XzdSupplierInfoBo bo, PageQuery pageQuery) { + return supplierInfoService.queryPageList(bo, pageQuery); } /** 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 be8158fe..982878f3 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 @@ -33,7 +33,7 @@ import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo; import org.dromara.tender.domain.vo.BusTenderPlanningLimitListVo; import org.dromara.tender.service.IBusBiddingPlanService; import org.dromara.tender.service.IBusBillofquantitiesLimitListService; -import org.dromara.tender.service.ITenderSupplierInputService; +//import org.dromara.tender.service.ITenderSupplierInputService; import org.springframework.context.annotation.Lazy; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubContractorServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubContractorServiceImpl.java index 5e4de48b..d6141fef 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubContractorServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubContractorServiceImpl.java @@ -31,7 +31,9 @@ import org.dromara.project.service.IBusProjectService; import org.dromara.system.domain.SysUser; import org.dromara.system.service.ISysUserService; import org.dromara.tender.domain.TenderSupplierInput; -import org.dromara.tender.service.ITenderSupplierInputService; +//import org.dromara.tender.service.ITenderSupplierInputService; +import org.dromara.xzd.domain.XzdSupplierInfo; +import org.dromara.xzd.service.IXzdSupplierInfoService; import org.springframework.beans.BeanUtils; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -56,8 +58,10 @@ public class SubContractorServiceImpl extends ServiceImpl().eq(BusProjectDept::getProjectId, versions.getProjectId())); + if (projectDept != null){ + zjhcb.setDeptId(projectDept.getDeptId()); + } + zjhcb.setVesionId(busBLimitListVersions.getVersions()); + zjhcb.setSysProjectId(versions.getProjectId()); + String banBen = BatchNumberGenerator.generateBatchNumber("LXCBZTJHCB-"); + zjhcb.setDocCode(banBen); + XzdProject xzdProject = xzdProjectService.getBaseMapper().selectOne(new LambdaQueryWrapper().eq(XzdProject::getSysProjectId, versions.getProjectId())); + if (xzdProject != null){ + zjhcb.setProjectId(xzdProject.getId()); + zjhcb.setProjectLeader(xzdProject.getManagerResponsible()); + zjhcb.setExecProjectManager(xzdProject.getManagerExecution()); + zjhcb.setDocTitle(xzdProject.getProjectName()); + }else { + zjhcb.setDocTitle(banBen); + } + zjhcb.setDocDate(LocalDate.now()); + zjhcb.setBudgetCategory("1"); + zjhcb.setContractAmount(BigDecimal.ZERO); + boolean save1 = xzdCbysZjhcbService.save(zjhcb); + if (!save1) { + log.info("新增失败"); + } } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/vo/materials/MatMaterialsVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/vo/materials/MatMaterialsVo.java index 82557233..37d131a8 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/vo/materials/MatMaterialsVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/vo/materials/MatMaterialsVo.java @@ -8,6 +8,7 @@ import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.convert.ExcelDictConvert; import org.dromara.materials.domain.MatMaterials; import org.dromara.tender.domain.vo.TenderSupplierInputVo; +import org.dromara.xzd.domain.vo.XzdSupplierInfoVo; import java.io.Serial; import java.io.Serializable; @@ -56,7 +57,8 @@ public class MatMaterialsVo implements Serializable { * 公司信息 */ @ExcelProperty(value = "公司信息") - private TenderSupplierInputVo companyVo; +// private TenderSupplierInputVo companyVo; + private XzdSupplierInfoVo companyVo; /** * 项目id diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/MatMaterialsServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/MatMaterialsServiceImpl.java index bb2dee0c..dc811933 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/MatMaterialsServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/MatMaterialsServiceImpl.java @@ -33,7 +33,8 @@ import org.dromara.materials.mapper.MatMaterialsMapper; import org.dromara.materials.service.*; import org.dromara.project.domain.BusProject; import org.dromara.project.service.IBusProjectService; -import org.dromara.tender.service.ITenderSupplierInputService; +//import org.dromara.tender.service.ITenderSupplierInputService; +import org.dromara.xzd.service.IXzdSupplierInfoService; import org.springframework.beans.BeanUtils; import org.springframework.context.annotation.Lazy; import org.springframework.scheduling.annotation.Async; @@ -54,8 +55,10 @@ import java.util.stream.Collectors; public class MatMaterialsServiceImpl extends ServiceImpl implements IMatMaterialsService { +// @Resource +// private ITenderSupplierInputService tenderSupplierInputService; @Resource - private ITenderSupplierInputService tenderSupplierInputService; + private IXzdSupplierInfoService supplierInfoService; @Resource private IBusProjectService projectService; @@ -233,7 +236,7 @@ public class MatMaterialsServiceImpl extends ServiceImpl deptIds; + private Long deptIds; /** * xzd项目id diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/project/BusProjectUpdateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/project/BusProjectUpdateReq.java index 36ba7c8c..5f9bd3e7 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/project/BusProjectUpdateReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/project/BusProjectUpdateReq.java @@ -155,7 +155,7 @@ public class BusProjectUpdateReq implements Serializable { /** * 所属部门列表 */ - private List deptIds; + private Long deptIds; /** * 省份 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectServiceImpl.java index c136dfca..17777b6e 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectServiceImpl.java @@ -421,18 +421,16 @@ public class BusProjectServiceImpl extends ServiceImpl deptIds = req.getDeptIds(); - if (CollUtil.isNotEmpty(deptIds)) { - List projectDeptList = deptIds.stream().map(deptId -> { - BusProjectDept projectDept = new BusProjectDept(); - projectDept.setDeptId(deptId); - projectDept.setProjectId(projectId); - return projectDept; - }).toList(); - boolean saveBatch = projectDeptService.saveBatch(projectDeptList); - if (!saveBatch) { - throw new ServiceException("保存项目与部门的关联失败", HttpStatus.ERROR); - } + Long count = projectDeptService.getBaseMapper().selectCount(new LambdaQueryWrapper().eq(BusProjectDept::getProjectId, projectId)); + if (count > 0) { + throw new ServiceException("项目已存在部门关联,请勿重复添加", HttpStatus.BAD_REQUEST); + } + BusProjectDept projectDept = new BusProjectDept(); + projectDept.setDeptId(req.getDeptIds()); + projectDept.setProjectId(projectId); + boolean save1 = projectDeptService.save(projectDept); + if (!save1) { + throw new ServiceException("新增项目与部门关联失败,数据库异常", HttpStatus.ERROR); } // 异步执行数据同步 self.insertProjectSyncThing(projectId) @@ -570,41 +568,19 @@ public class BusProjectServiceImpl extends ServiceImpl deptIds = req.getDeptIds(); - // 根据项目查询部门 - List oldDeptIds = projectDeptService.lambdaQuery() - .eq(BusProjectDept::getProjectId, project.getId()) - .list() - .stream().map(BusProjectDept::getDeptId) - .toList(); - if (CollUtil.isEmpty(deptIds) && CollUtil.isEmpty(oldDeptIds)) { - return true; - } else if (CollUtil.isEmpty(deptIds) && CollUtil.isNotEmpty(oldDeptIds)) { - //删除所有旧部门 - boolean remove = projectDeptService.remove(Wrappers.lambdaQuery(BusProjectDept.class) - .eq(BusProjectDept::getProjectId, project.getId())); - if (!remove) { - throw new ServiceException("删除项目部门失败", HttpStatus.ERROR); - } - } else if (CollUtil.isNotEmpty(deptIds)) { - if (CollUtil.isNotEmpty(oldDeptIds)) { - //删除所有旧部门 - boolean remove = projectDeptService.remove(Wrappers.lambdaQuery(BusProjectDept.class) - .eq(BusProjectDept::getProjectId, project.getId())); - if (!remove) { - throw new ServiceException("删除项目部门失败", HttpStatus.ERROR); - } - } - //新增部门 - List busProjectDepts = deptIds.stream().map(deptId -> { - BusProjectDept projectDept = new BusProjectDept(); - projectDept.setDeptId(deptId); - projectDept.setProjectId(project.getId()); - return projectDept; - }).toList(); - boolean save = projectDeptService.saveBatch(busProjectDepts); - if (!save) { - throw new ServiceException("部门增加失败", HttpStatus.ERROR); + //删除所有旧部门 + boolean remove = projectDeptService.remove(Wrappers.lambdaQuery(BusProjectDept.class) + .eq(BusProjectDept::getProjectId, project.getId())); + if (!remove) { + throw new ServiceException("删除项目部门失败", HttpStatus.ERROR); + } + if (req.getDeptIds() !=null) { + BusProjectDept projectDept = new BusProjectDept(); + projectDept.setDeptId(req.getDeptIds()); + projectDept.setProjectId(project.getId()); + boolean save1 = projectDeptService.save(projectDept); + if (!save1) { + throw new ServiceException("新增项目与部门关联失败,数据库异常", HttpStatus.ERROR); } } return true; diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java index 270cc271..76f335e1 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java @@ -90,7 +90,9 @@ public class SysUserServiceImpl implements ISysUserService, UserService { private final ISubConstructionUserService constructionUserService; - private final ISubContractorService contractorService; + @Lazy + @Resource + private ISubContractorService contractorService; @Lazy @Resource diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/controller/BusBiddingPlanController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/controller/BusBiddingPlanController.java index 9c4d3b0e..4c8375f9 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/controller/BusBiddingPlanController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/controller/BusBiddingPlanController.java @@ -3,6 +3,7 @@ package org.dromara.tender.controller; import java.util.List; import cn.dev33.satoken.annotation.SaMode; +import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; @@ -14,7 +15,10 @@ import org.dromara.tender.domain.bo.*; import org.dromara.tender.domain.vo.*; import org.dromara.tender.service.IBusBiddingPlanAnnexService; import org.dromara.tender.service.IBusBillofquantitiesLimitListService; -import org.dromara.tender.service.ITenderSupplierInputService; +//import org.dromara.tender.service.ITenderSupplierInputService; +import org.dromara.xzd.domain.bo.XzdSupplierInfoBo; +import org.dromara.xzd.domain.vo.XzdSupplierInfoVo; +import org.dromara.xzd.service.IXzdSupplierInfoService; import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; @@ -48,16 +52,18 @@ public class BusBiddingPlanController extends BaseController { private final IBusBillofquantitiesLimitListService busBillofquantitiesLimitListService; @Lazy private final IBusBiddingPlanAnnexService busBiddingPlanAnnexService; +// private final ITenderSupplierInputService tenderSupplierInputService; @Lazy - private final ITenderSupplierInputService tenderSupplierInputService; + @Resource + private IXzdSupplierInfoService supplierInfoService; /** * 查询供应商入库列表 */ @SaCheckPermission(value = {"tender:biddingPlan:list","tender:biddingPlan:add","tender:biddingPlan:edit"},mode = SaMode.OR) @GetMapping("/getSupplierInputList") - public R> list(TenderSupplierInputBo bo) { - return R.ok(tenderSupplierInputService.getList(bo)); + public R> list(XzdSupplierInfoBo bo) { + return R.ok(supplierInfoService.getList(bo)); } /** 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 fbe2dead..8b2fb2a9 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 @@ -114,4 +114,13 @@ public interface IBusBillofquantitiesLimitListService extends IService queryVoList(BusBillofquantitiesLimitListBo bo); List pList(BusBillofquantitiesLimitListBo bo); + + /** + * 立项及成本-成本预算-总体计划成本获取限价一览列表 + * @param bo + * @return + */ + List getZjhcbTree(BusBillofquantitiesLimitListBo bo); + + List getVoByVersion(Long sysProjectId, String vesion); } 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 c125d18d..4c4ac34c 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 @@ -3,6 +3,7 @@ package org.dromara.tender.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; @@ -22,8 +23,11 @@ import org.dromara.tender.domain.vo.*; 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.dromara.tender.service.ITenderSupplierInputService; +import org.dromara.xzd.domain.XzdSupplierInfo; +import org.dromara.xzd.service.IXzdSupplierInfoService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.dromara.tender.domain.bo.BusBiddingPlanBo; import org.dromara.tender.mapper.BusBiddingPlanMapper; @@ -64,8 +68,11 @@ public class BusBiddingPlanServiceImpl extends ServiceImpl planAnnexVoList = busBiddingPlanAnnexService.queryList(planAnnex); BusBiddingPlan biddingPlan = baseMapper.selectById(bo.getId()); //冗余中标单位名称 - TenderSupplierInput tenderSupplierInput = tenderSupplierInputService.getById(bo.getWinningBidderId()); +// TenderSupplierInput tenderSupplierInput = tenderSupplierInputService.getById(bo.getWinningBidderId()); + XzdSupplierInfo supplierInfo = supplierInfoService.getById(bo.getWinningBidderId()); biddingPlan.setWinningBidderId(bo.getWinningBidderId()); - biddingPlan.setWinningBidder(tenderSupplierInput.getSupplierName()); + biddingPlan.setWinningBidder(supplierInfo.getUnitName()); if (biddingPlan.getPlannedBiddingTime() == null){ throw new ServiceException("计划招标时间不能为空!!"); } 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 bc9f8c9f..248fdf6a 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 @@ -368,6 +368,34 @@ public class BusBillofquantitiesLimitListServiceImpl extends ServiceImpl getZjhcbTree(BusBillofquantitiesLimitListBo bo) { + //获取所有数据 + List listVoList = baseMapper.selectVoList(new LambdaQueryWrapper() + .eq(bo.getProjectId() != null,BusBillofquantitiesLimitList::getProjectId, bo.getProjectId()) + .eq(StringUtils.isNotBlank(bo.getType()),BusBillofquantitiesLimitList::getType, bo.getType()) + .eq(StringUtils.isNotBlank(bo.getVersions()),BusBillofquantitiesLimitList::getVersions, bo.getVersions()) + .eq(StringUtils.isNotBlank(bo.getSheet()),BusBillofquantitiesLimitList::getSheet, bo.getSheet())); + + //构建父子映射 + Map> parentMap = listVoList.stream() + .collect(Collectors.groupingBy(BusBillofquantitiesLimitListVo::getPid)); + //递归组装树形结构 + List treeList = buildTree("0", parentMap); + for (BusBillofquantitiesLimitListVo item : treeList) { + calculateTreePrice(item); + } + return treeList; + } + + @Override + public List getVoByVersion(Long sysProjectId, String vesion) { + return baseMapper.selectVoList(new LambdaQueryWrapper() + .eq(BusBillofquantitiesLimitList::getProjectId, sysProjectId) + .eq(BusBillofquantitiesLimitList::getVersions, vesion) + .isNotNull(BusBillofquantitiesLimitList::getUnitPrice)); + } + /** * 递归构建树形结构 * diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/service/Impl/ChatHistoryServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/service/Impl/ChatHistoryServiceImpl.java index 27085fe7..855b63cd 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/service/Impl/ChatHistoryServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/service/Impl/ChatHistoryServiceImpl.java @@ -1,7 +1,6 @@ package org.dromara.websocket.service.Impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.dromara.tender.service.ITenderSupplierInputService; import org.dromara.websocket.domain.ChatHistory; import org.dromara.websocket.mapper.ChatHistoryMapper; import org.dromara.websocket.service.IChatHistoryService; diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdSupplierInfoController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdSupplierInfoController.java index ff08e3ca..c1b3eff8 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdSupplierInfoController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdSupplierInfoController.java @@ -15,6 +15,8 @@ import org.dromara.common.log.enums.BusinessType; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; +import org.dromara.tender.domain.bo.TenderSupplierInputBo; +import org.dromara.tender.domain.vo.TenderSupplierInputVo; import org.dromara.xzd.domain.bo.XzdProjectBo; import org.dromara.xzd.domain.bo.XzdSupplierInfoBo; import org.dromara.xzd.domain.bo.XzdSupplierOpenBankBo; @@ -46,6 +48,15 @@ public class XzdSupplierInfoController extends BaseController { private final IXzdSupplierOpenBankService xzdSupplierOpenBankService; private final IXzdYhxxService xzdYhxxService; + /** + * 查询供应商入库列表 + */ + @SaCheckPermission("supplierInput:supplierInput:getList") + @GetMapping("/getList") + public R> list(XzdSupplierInfoBo bo) { + return R.ok(xzdSupplierInfoService.getList(bo)); + } + /** * 查询供应商信息列表 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/controller/XzdCbysZjhcbController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/controller/XzdCbysZjhcbController.java index 7b3178fd..17929932 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/controller/XzdCbysZjhcbController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/controller/XzdCbysZjhcbController.java @@ -2,10 +2,15 @@ package org.dromara.xzd.costProjectApproval.costBudget.controller; import java.util.List; +import cn.dev33.satoken.annotation.SaMode; import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.tender.domain.bo.BusBillofquantitiesLimitListBo; +import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo; +import org.dromara.tender.enums.LimitListTypeEnum; +import org.dromara.tender.service.IBusBillofquantitiesLimitListService; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -35,6 +40,26 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; public class XzdCbysZjhcbController extends BaseController { private final IXzdCbysZjhcbService xzdCbysZjhcbService; + private final IBusBillofquantitiesLimitListService busBillofquantitiesLimitListService; + + /** + * 获取指定版本的sheet + */ + @SaCheckPermission(value = {"costBudget:cbysZjhcb:list","costBudget:cbysZjhcb:add","costBudget:cbysZjhcb:edit"},mode = SaMode.OR) + @GetMapping("/sheetList") + public R> sheetList(XzdCbysZjhcbBo bo) { + return R.ok(xzdCbysZjhcbService.sheetList(bo)); + } + + /** + * 查询限价一览列表 + */ + @SaCheckPermission(value = {"costBudget:cbysZjhcb:list","costBudget:cbysZjhcb:add","costBudget:cbysZjhcb:edit"},mode = SaMode.OR) + @GetMapping("/getTree") + public R> getTree(BusBillofquantitiesLimitListBo bo) { + bo.setType(LimitListTypeEnum.COMPANY.getCode()); + return R.ok(xzdCbysZjhcbService.getTree(bo)); + } /** * 查询立项及成本-成本预算-总体计划成本列表 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/XzdCbysZjhcb.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/XzdCbysZjhcb.java index 5ef7e214..50b211ff 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/XzdCbysZjhcb.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/XzdCbysZjhcb.java @@ -35,6 +35,11 @@ public class XzdCbysZjhcb extends BaseEntity { */ private Long deptId; + /** + *限价一览版本id + */ + private String vesionId; + /** * 单据编码(带*,必填) */ @@ -54,6 +59,10 @@ public class XzdCbysZjhcb extends BaseEntity { * 工程项目(带*,必填) */ private Long projectId; + /** + * 系统项目id + */ + private Long sysProjectId; /** * 预算分类(带*,必填) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/bo/XzdCbysZjhcbBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/bo/XzdCbysZjhcbBo.java index 690ed564..339aa46b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/bo/XzdCbysZjhcbBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/bo/XzdCbysZjhcbBo.java @@ -1,5 +1,6 @@ package org.dromara.xzd.costProjectApproval.costBudget.domain.bo; +import org.dromara.tender.domain.bo.BusBillofquantitiesLimitListBo; import org.dromara.xzd.costProjectApproval.costBudget.domain.*; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; @@ -30,6 +31,12 @@ public class XzdCbysZjhcbBo extends BaseEntity { private Long id; + + /** + *限价一览版本id + */ + private String vesionId; + /** * 部门id */ @@ -56,6 +63,10 @@ public class XzdCbysZjhcbBo extends BaseEntity { */ @NotNull(message = "工程项目(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) private Long projectId; + /** + * 系统项目id + */ + private Long sysProjectId; /** * 预算分类(带*,必填) @@ -166,12 +177,17 @@ public class XzdCbysZjhcbBo extends BaseEntity { List xzdCbysZtjhcbBgjl; /** - * 成本明细 + * 限价一览 */ - List xzdCbysWgcbtbFubiao; + List bos; - /** - * 税收成本 - */ - List xzdCbysSscb; +// /** +// * 成本明细 +// */ +// List xzdCbysWgcbtbFubiao; +// +// /** +// * 税收成本 +// */ +// List xzdCbysSscb; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/vo/XzdCbysZjhcbVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/vo/XzdCbysZjhcbVo.java index fba4d0df..b31eedbe 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/vo/XzdCbysZjhcbVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/domain/vo/XzdCbysZjhcbVo.java @@ -4,6 +4,8 @@ import java.math.BigDecimal; import org.dromara.common.translation.annotation.Translation; import org.dromara.common.translation.constant.TransConstant; +import org.dromara.tender.domain.bo.BusBillofquantitiesLimitListBo; +import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo; import org.dromara.xzd.costProjectApproval.costBudget.domain.*; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -40,6 +42,11 @@ public class XzdCbysZjhcbVo implements Serializable { private Long id; + + /** + *限价一览版本id + */ + private String vesionId; /** * 部门id */ @@ -64,6 +71,10 @@ public class XzdCbysZjhcbVo implements Serializable { */ @ExcelProperty(value = "单据日期") private LocalDate docDate; + /** + * 系统项目id + */ + private Long sysProjectId; /** * 工程项目(带*,必填) @@ -213,10 +224,14 @@ public class XzdCbysZjhcbVo implements Serializable { /** * 成本明细 */ - List xzdCbysWgcbtbFubiao; - +// List xzdCbysWgcbtbFubiao; +// +// /** +// * 税收成本 +// */ +// List xzdCbysSscb; /** - * 税收成本 + * 限价一览 */ - List xzdCbysSscb; + List bos; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/service/IXzdCbysZjhcbService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/service/IXzdCbysZjhcbService.java index 268af346..26240579 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/service/IXzdCbysZjhcbService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/service/IXzdCbysZjhcbService.java @@ -1,5 +1,7 @@ package org.dromara.xzd.costProjectApproval.costBudget.service; +import org.dromara.tender.domain.bo.BusBillofquantitiesLimitListBo; +import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo; import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbVo; import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysZjhcbBo; import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcb; @@ -69,4 +71,16 @@ public interface IXzdCbysZjhcbService extends IService{ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); String queryNameById(Long id); + + /** + * 查询指定版本的sheet通过项目id + */ + List sheetList(XzdCbysZjhcbBo bo); + + /** + * 查询限价一览列表 + * @param bo + * @return + */ + List getTree(BusBillofquantitiesLimitListBo bo); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/service/impl/XzdCbysZjhcbServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/service/impl/XzdCbysZjhcbServiceImpl.java index f7a992c4..d9d354fd 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/service/impl/XzdCbysZjhcbServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/costProjectApproval/costBudget/service/impl/XzdCbysZjhcbServiceImpl.java @@ -3,6 +3,7 @@ package org.dromara.xzd.costProjectApproval.costBudget.service.impl; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.event.ProcessDeleteEvent; import org.dromara.common.core.domain.event.ProcessEvent; @@ -21,6 +22,12 @@ import lombok.RequiredArgsConstructor; import org.dromara.common.utils.BatchNumberGenerator; import org.dromara.system.service.ISysUserService; import org.dromara.system.service.impl.SysOssServiceImpl; +import org.dromara.tender.domain.BusBillofquantitiesLimitList; +import org.dromara.tender.domain.bo.BusBillofquantitiesLimitListBo; +import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo; +import org.dromara.tender.enums.LimitListTypeEnum; +import org.dromara.tender.service.IBusBLimitListVersionsService; +import org.dromara.tender.service.IBusBillofquantitiesLimitListService; import org.dromara.xzd.costProjectApproval.costBudget.domain.*; import org.dromara.xzd.costProjectApproval.costBudget.service.*; import org.dromara.xzd.domain.vo.XzdProjectManagerApprovalVo; @@ -28,13 +35,17 @@ import org.dromara.xzd.service.impl.XzdProjectServiceImpl; import org.dromara.xzd.settlement.domain.XzdJsDeductionItems; import org.dromara.xzd.settlement.domain.vo.XzdJsCgJungonVo; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysZjhcbBo; import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbVo; import org.dromara.xzd.costProjectApproval.costBudget.mapper.XzdCbysZjhcbMapper; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; +import java.util.stream.Collectors; /** * 立项及成本-成本预算-总体计划成本Service业务层处理 @@ -57,6 +68,10 @@ public class XzdCbysZjhcbServiceImpl extends ServiceImpl {item.setMainDocumentId(add.getId());}); - xzdCbysSscbService.saveBatch(bo.getXzdCbysSscb()); +// if (bo.getXzdCbysWgcbtbFubiao() == null || bo.getXzdCbysWgcbtbFubiao().isEmpty()) { +// throw new ServiceException("成本明细不能为空"); +// } +// bo.getXzdCbysSscb().forEach(item -> {item.setMainDocumentId(add.getId());}); +// xzdCbysSscbService.saveBatch(bo.getXzdCbysSscb()); bo.getXzdCbysZtjhcbBgjl().forEach(item -> {item.setMainDocumentId(add.getId());}); xzdCbysZtjhcbBgjlService.saveBatch(bo.getXzdCbysZtjhcbBgjl()); - bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocumentId(add.getId());}); - fubiaoService.saveBatch(bo.getXzdCbysWgcbtbFubiao()); +// bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocumentId(add.getId());}); +// fubiaoService.saveBatch(bo.getXzdCbysWgcbtbFubiao()); return flag; } @@ -174,24 +189,57 @@ public class XzdCbysZjhcbServiceImpl extends ServiceImpl().eq(XzdCbysZtjhcbBgjl::getMainDocumentId, bo.getId())); - xzdCbysSscbService.remove(new LambdaQueryWrapper().eq(XzdCbysSscb::getMainDocumentId, bo.getId())); - fubiaoService.remove(new LambdaQueryWrapper().eq(XzdCbysZjhcbFubiao::getMainDocumentId, bo.getId())); - bo.getXzdCbysSscb().forEach(item -> {item.setMainDocumentId(bo.getId());}); - xzdCbysSscbService.saveBatch(bo.getXzdCbysSscb()); +// xzdCbysSscbService.remove(new LambdaQueryWrapper().eq(XzdCbysSscb::getMainDocumentId, bo.getId())); +// fubiaoService.remove(new LambdaQueryWrapper().eq(XzdCbysZjhcbFubiao::getMainDocumentId, bo.getId())); +// bo.getXzdCbysSscb().forEach(item -> {item.setMainDocumentId(bo.getId());}); +// xzdCbysSscbService.saveBatch(bo.getXzdCbysSscb()); bo.getXzdCbysZtjhcbBgjl().forEach(item -> {item.setMainDocumentId(bo.getId());}); xzdCbysZtjhcbBgjlService.saveBatch(bo.getXzdCbysZtjhcbBgjl()); - bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocumentId(bo.getId());}); - fubiaoService.saveBatch(bo.getXzdCbysWgcbtbFubiao()); +// bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocumentId(bo.getId());}); +// fubiaoService.saveBatch(bo.getXzdCbysWgcbtbFubiao()); + if (bo.getBos() != null){ + BigDecimal totalTaxInclAmount = BigDecimal.ZERO; //含税金额 + BigDecimal totalTaxAmount = BigDecimal.ZERO; //税额 + BigDecimal totalTaxExclAmount = BigDecimal.ZERO; //不含税金额 + for (BusBillofquantitiesLimitListBo item : bo.getBos()) {//计算含税金额 + BigDecimal amount = item.getQuantity().multiply(item.getUnitPrice()).setScale(4, RoundingMode.HALF_UP); + //税率 + BigDecimal rate = BigDecimal.ZERO; + if (item.getTaxRate() != null){ + rate=item.getTaxRate().divide(new BigDecimal("100"), 4, RoundingMode.HALF_UP); + } + //税额 + BigDecimal taxAmount = amount.multiply(rate).setScale(4, RoundingMode.HALF_UP); + //不含税金额 + BigDecimal taxExclAmount = amount.subtract(taxAmount).setScale(4, RoundingMode.HALF_UP); + totalTaxInclAmount = totalTaxInclAmount.add(amount); + totalTaxAmount = totalTaxAmount.add(taxAmount); + totalTaxExclAmount = totalTaxExclAmount.add(taxExclAmount); + } + if (totalTaxInclAmount.compareTo(update.getTotalTaxInclAmount()) != 0){ + throw new ServiceException("含税金额不一致"); + } + if (totalTaxAmount.compareTo(update.getTotalTaxAmount()) != 0){ + throw new ServiceException("税额不一致"); + } + if (totalTaxExclAmount.compareTo(update.getTotalTaxExclAmount()) != 0){ + throw new ServiceException("不含税金额不一致"); + } + update.setTotalTaxInclAmount(totalTaxInclAmount); + update.setTotalTaxAmount(totalTaxAmount); + update.setTotalTaxExclAmount(totalTaxExclAmount); + Boolean b = limitListService.updateByBo(bo.getBos()); + } return baseMapper.updateById(update) > 0; } @@ -241,7 +289,29 @@ public class XzdCbysZjhcbServiceImpl extends ServiceImpl sheetList(XzdCbysZjhcbBo bo) { + XzdCbysZjhcbVo xzdCbysZjhcbVo = baseMapper.selectVoOne(new LambdaQueryWrapper().eq(XzdCbysZjhcb::getSysProjectId, bo.getSysProjectId())); + if (xzdCbysZjhcbVo != null){ + List busBillofquantitiesLimitLists = limitListService.getBaseMapper().selectList(new LambdaQueryWrapper() + .select(BusBillofquantitiesLimitList::getSheet) + .eq(xzdCbysZjhcbVo.getSysProjectId() != null, BusBillofquantitiesLimitList::getProjectId, xzdCbysZjhcbVo.getSysProjectId()) + .eq(BusBillofquantitiesLimitList::getType, LimitListTypeEnum.COMPANY.getCode()) + .eq(StringUtils.isNotBlank(xzdCbysZjhcbVo.getVesionId()), BusBillofquantitiesLimitList::getVersions, xzdCbysZjhcbVo.getVesionId()) + .orderByAsc(BusBillofquantitiesLimitList::getSheet) + .groupBy(BusBillofquantitiesLimitList::getSheet)); + return busBillofquantitiesLimitLists.stream() + .filter(Objects::nonNull) + .map(BusBillofquantitiesLimitList::getSheet) + .collect(Collectors.toList()); + } + return List.of(); + } + @Override + public List getTree(BusBillofquantitiesLimitListBo bo) { + return limitListService.getZjhcbTree(bo); + } /** @@ -251,10 +321,12 @@ public class XzdCbysZjhcbServiceImpl extends ServiceImpl xzdCbysZtjhcbBgjls = xzdCbysZtjhcbBgjlService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdCbysZtjhcbBgjl::getMainDocumentId, vo.getId())); vo.setXzdCbysZtjhcbBgjl(xzdCbysZtjhcbBgjls); - List xzdCbysSscbs = xzdCbysSscbService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdCbysSscb::getMainDocumentId, vo.getId())); - vo.setXzdCbysSscb(xzdCbysSscbs); - List xzdCbysWgcbtbFubiaos = fubiaoService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdCbysZjhcbFubiao::getMainDocumentId, vo.getId())); - vo.setXzdCbysWgcbtbFubiao(xzdCbysWgcbtbFubiaos); +// List xzdCbysSscbs = xzdCbysSscbService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdCbysSscb::getMainDocumentId, vo.getId())); +// vo.setXzdCbysSscb(xzdCbysSscbs); +// List xzdCbysWgcbtbFubiaos = fubiaoService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdCbysZjhcbFubiao::getMainDocumentId, vo.getId())); +// vo.setXzdCbysWgcbtbFubiao(xzdCbysWgcbtbFubiaos); + List vos = limitListService.getVoByVersion(vo.getSysProjectId(), vo.getVesionId()); + vo.setBos(vos); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdSupplierInfoService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdSupplierInfoService.java index 52a5d29a..65dfb92b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdSupplierInfoService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdSupplierInfoService.java @@ -1,7 +1,7 @@ package org.dromara.xzd.service; import org.dromara.common.core.domain.R; -import org.dromara.xzd.domain.vo.XzdCustomertypeInfoVo; +import org.dromara.tender.domain.bo.TenderSupplierInputReq; import org.dromara.xzd.domain.vo.XzdCustomertypeVo; import org.dromara.xzd.domain.vo.XzdSupplierInfoVo; import org.dromara.xzd.domain.bo.XzdSupplierInfoBo; @@ -74,4 +74,14 @@ public interface IXzdSupplierInfoService extends IService{ R> typeList(); String queryNameById(Long id); + + /** + * 根据名称查询供应商信息 + * + * @param req + * @return + */ + List getListByName(TenderSupplierInputReq req); + + List getList(XzdSupplierInfoBo bo); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierInfoServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierInfoServiceImpl.java index 8842d486..70f3f5fa 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierInfoServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierInfoServiceImpl.java @@ -22,6 +22,15 @@ import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.service.impl.SysDeptServiceImpl; import org.dromara.system.service.impl.SysOssServiceImpl; import org.dromara.system.service.impl.SysUserServiceImpl; +import org.dromara.tender.domain.BusBiddingPlan; +import org.dromara.tender.domain.BusBillofquantitiesLimitList; +import org.dromara.tender.domain.BusTenderPlanningLimitList; +import org.dromara.tender.domain.TenderSupplierInput; +import org.dromara.tender.domain.bo.TenderSupplierInputReq; +import org.dromara.tender.domain.vo.TenderSupplierInputVo; +import org.dromara.tender.service.IBusBiddingPlanService; +import org.dromara.tender.service.IBusBillofquantitiesLimitListService; +import org.dromara.tender.service.IBusTenderPlanningLimitListService; import org.dromara.xzd.domain.*; import org.dromara.xzd.domain.bo.XzdSupplierInfoBo; import org.dromara.xzd.domain.vo.XzdCustomertypeVo; @@ -38,10 +47,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 供应商信息Service业务层处理 @@ -90,11 +96,21 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl getListByName(TenderSupplierInputReq req) { + + if (req.getName() == null || req.getName().isEmpty()) { + return null; + } + //查询限价一览表中物资限价一览中物资名包含req.getName()的物资 + List busBillofquantitiesLimitLists = billofquantitiesLimitListService.getBaseMapper() + .selectList(new LambdaQueryWrapper() + .eq(BusBillofquantitiesLimitList::getProjectId, req.getProjectId()) + .eq(BusBillofquantitiesLimitList::getType, 3) + .like(BusBillofquantitiesLimitList::getName, req.getName())); + if (busBillofquantitiesLimitLists.isEmpty()) { + return null; + } + Set b = new HashSet<>(); + busBillofquantitiesLimitLists.forEach(billofquantitiesLimitList -> {b.add(billofquantitiesLimitList.getId());}); + if (b.isEmpty()){ + return null; + } + //通过物资限价一览id获取到对应的招标计划id + List busTenderPlanningLimitLists = busTenderPlanningLimitListService.getBaseMapper().selectList(new LambdaQueryWrapper().isNotNull(BusTenderPlanningLimitList::getNum).in(BusTenderPlanningLimitList::getLimitListId, b)); + if (busTenderPlanningLimitLists.isEmpty()) { + return null; + } + //通过招标计划id找到对应招标计划并获取到对应供应商id + Set planIds = new HashSet<>(); + busTenderPlanningLimitLists.forEach(tenderPlanningLimitList -> {planIds.add(tenderPlanningLimitList.getBiddingPlanId());}); + if (planIds.isEmpty()) { + return null; + } + List busBiddingPlans = busBiddingPlanService.getBaseMapper().selectList(new LambdaQueryWrapper().in(BusBiddingPlan::getId, planIds)); + if (busBiddingPlans.isEmpty()) { + return null; + } + //通过供应商id获取供应商列表 + Set tenderSupplierIds = new HashSet<>(); + busBiddingPlans.forEach(biddingPlan -> {tenderSupplierIds.add(biddingPlan.getWinningBidderId());}); + if (tenderSupplierIds.isEmpty()) { + return null; + } + return baseMapper.selectVoByIds(tenderSupplierIds); + } + + @Override + public List getList(XzdSupplierInfoBo bo) { + bo.setShzt("finish"); + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + List tenderSupplierInputVos = baseMapper.selectVoList(lqw); + List list = new ArrayList<>(); + tenderSupplierInputVos.forEach(tenderSupplierInputVo -> { + XzdSupplierInfoVo vo = new XzdSupplierInfoVo(); + vo.setUnitName(tenderSupplierInputVo.getUnitName()); + vo.setId(tenderSupplierInputVo.getId()); + list.add(vo); + }); + return list; + } + private void getChildren(List list){ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();