From 69e8e4169b534ee6937c140fbb90db0263f407f3 Mon Sep 17 00:00:00 2001 From: lg Date: Fri, 10 Oct 2025 20:07:47 +0800 Subject: [PATCH] 1111 --- .../src/main/resources/application-prod.yml | 2 +- .../test/java/org/dromara/test/DemoTest.java | 47 -- .../impl/SubConstructionUserServiceImpl.java | 9 +- .../impl/SubContractorServiceImpl.java | 12 +- ...usBillofquantitiesVersionsServiceImpl.java | 3 - .../controller/MatMaterialsController.java | 14 - .../domain/MatMaterialsInventory.java | 9 - .../controller/BusAttendanceController.java | 13 +- .../app/BusAttendanceAppController.java | 5 +- .../org/dromara/project/domain/BusLeave.java | 10 - .../service/IBusAttendanceService.java | 14 +- .../impl/BusAttendanceServiceImpl.java | 155 ++----- .../service/impl/BusLeaveServiceImpl.java | 6 +- .../impl/BusProjectTeamMemberServiceImpl.java | 5 +- .../dromara/system/domain/vo/SysUserVo.java | 4 +- .../service/impl/SysUserServiceImpl.java | 29 +- .../XzdBidPreProjectController.java | 109 +++++ .../XzdProjectRiskAssessmentController.java | 106 +++++ .../domain/XzdBidPreProject.java | 126 ++++++ .../domain/XzdBqlxProjectInfo.java | 193 ++++++++ .../domain/XzdProjectRiskAssessment.java | 121 ++++++ .../domain/bo/XzdBidPreProjectBo.java | 134 ++++++ .../domain/bo/XzdBqlxProjectInfoBo.java | 195 +++++++++ .../domain/bo/XzdProjectRiskAssessmentBo.java | 120 +++++ .../domain/dto/BiddingManagementDto.java | 13 + .../domain/dto/QuerBiddingManagementDto.java | 52 +++ .../domain/vo/QuerListXzdBidPreVo.java | 13 + .../domain/vo/QueryListXzdVo.java | 15 + .../domain/vo/XzdBidPreProjectVo.java | 164 +++++++ .../domain/vo/XzdBqlxProjectInfoVo.java | 235 ++++++++++ .../domain/vo/XzdProjectRiskAssessmentVo.java | 168 +++++++ .../domain/vo/XzdProjectVo.java | 44 ++ .../mapper/XzdBidPreProjectMapper.java | 24 + .../mapper/XzdBqlxProjectInfoMapper.java | 15 + .../XzdProjectRiskAssessmentMapper.java | 16 + .../service/IXzdBidPreProjectService.java | 74 ++++ .../service/IXzdBqlxProjectInfoService.java | 70 +++ .../IXzdProjectRiskAssessmentService.java | 73 ++++ .../impl/XzdBidPreProjectServiceImpl.java | 217 +++++++++ .../impl/XzdBqlxProjectInfoServiceImpl.java | 161 +++++++ .../XzdProjectRiskAssessmentServiceImpl.java | 176 ++++++++ .../xzd/controller/XzdCorrespondentList.java | 48 +- .../controller/XzdProjectTypeController.java | 99 +++++ .../dromara/xzd/domain/XzdCustomertype.java | 3 - .../org/dromara/xzd/domain/XzdPoiArea.java | 3 +- .../dromara/xzd/domain/XzdProjectType.java | 54 +++ .../dromara/xzd/domain/XzdSettlementInfo.java | 6 + .../xzd/domain/bo/XzdCertificateInfoBo.java | 7 +- .../xzd/domain/bo/XzdCustomerDetailBo.java | 7 +- .../domain/bo/XzdCustomerinformationBo.java | 9 +- .../xzd/domain/bo/XzdProjectInfoBo.java | 5 +- .../xzd/domain/bo/XzdProjectTypeBo.java | 55 +++ .../xzd/domain/bo/XzdSettlementInfoBo.java | 5 + .../xzd/domain/dto/AddCorrespondentDto.java | 4 +- .../xzd/domain/dto/QuerCorrespondentDto.java | 50 +++ .../xzd/domain/dto/XzdClienteleListDto.java | 6 + .../xzd/domain/vo/XzdClienteleListVo.java | 9 +- .../xzd/domain/vo/XzdCustomertypeVo.java | 6 +- .../xzd/domain/vo/XzdProjectTypeVo.java | 67 +++ .../xzd/domain/vo/XzdSettlementInfoVo.java | 7 + .../java/org/dromara/xzd/enums/ZxdEnum.java | 4 +- .../xzd/mapper/XzdProjectTypeMapper.java | 16 + .../xzd/service/IXzdCorrespondentList.java | 7 +- .../xzd/service/IXzdCustomertypeService.java | 2 + .../xzd/service/IXzdProjectTypeService.java | 65 +++ .../service/impl/XzdCorrespondentListImp.java | 392 ++++++++++++----- .../impl/XzdCustomertypeServiceImpl.java | 9 + .../impl/XzdProjectTypeServiceImpl.java | 140 ++++++ .../java/org/dromara/xzd/utilS/AreaUtil.java | 12 + .../xzd/XzdCustomerinformationMapper.xml | 17 +- .../XzdBidPreProjectMapper.xml | 87 ++++ .../controller/app/FlowAppController.java | 22 +- .../listener/WorkflowGlobalListener.java | 2 +- xinnengyuan/script/sql/tbgl.sql | 411 ------------------ 74 files changed, 3748 insertions(+), 859 deletions(-) create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/controller/XzdBidPreProjectController.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/controller/XzdProjectRiskAssessmentController.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/XzdBidPreProject.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/XzdBqlxProjectInfo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/XzdProjectRiskAssessment.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/bo/XzdBidPreProjectBo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/bo/XzdBqlxProjectInfoBo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/bo/XzdProjectRiskAssessmentBo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/dto/BiddingManagementDto.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/dto/QuerBiddingManagementDto.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/QuerListXzdBidPreVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/QueryListXzdVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/XzdBidPreProjectVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/XzdBqlxProjectInfoVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/XzdProjectRiskAssessmentVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/XzdProjectVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/mapper/XzdBidPreProjectMapper.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/mapper/XzdBqlxProjectInfoMapper.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/mapper/XzdProjectRiskAssessmentMapper.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/IXzdBidPreProjectService.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/IXzdBqlxProjectInfoService.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/IXzdProjectRiskAssessmentService.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/impl/XzdBidPreProjectServiceImpl.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/impl/XzdBqlxProjectInfoServiceImpl.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/impl/XzdProjectRiskAssessmentServiceImpl.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdProjectTypeController.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdProjectType.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdProjectTypeBo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/dto/QuerCorrespondentDto.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdProjectTypeVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdProjectTypeMapper.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdProjectTypeService.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectTypeServiceImpl.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/biddingManagement/XzdBidPreProjectMapper.xml delete mode 100644 xinnengyuan/script/sql/tbgl.sql diff --git a/xinnengyuan/ruoyi-admin/src/main/resources/application-prod.yml b/xinnengyuan/ruoyi-admin/src/main/resources/application-prod.yml index e4093e1a..1623c947 100644 --- a/xinnengyuan/ruoyi-admin/src/main/resources/application-prod.yml +++ b/xinnengyuan/ruoyi-admin/src/main/resources/application-prod.yml @@ -300,7 +300,7 @@ dxf2GeoJson: file-name: main.exe ys7: app-key: 3acf9f1a43dc4209841e0893003db0a2 - app-secret: 09e29c70ae1161fbc3ce2030fc09ba2e + app-secret: 4bbf3e9394f55d3af6e3af27b2d3db36 # 斯巴达算法 sparta: url: http://119.3.204.120:8040 diff --git a/xinnengyuan/ruoyi-admin/src/test/java/org/dromara/test/DemoTest.java b/xinnengyuan/ruoyi-admin/src/test/java/org/dromara/test/DemoTest.java index 1acb1851..42970f35 100644 --- a/xinnengyuan/ruoyi-admin/src/test/java/org/dromara/test/DemoTest.java +++ b/xinnengyuan/ruoyi-admin/src/test/java/org/dromara/test/DemoTest.java @@ -18,7 +18,6 @@ import org.dromara.contractor.service.ISubConstructionUserService; import org.dromara.contractor.service.ISubUserSalaryDetailService; import org.dromara.design.service.IDesTechnicalStandardService; import org.dromara.facility.domain.FacMatrix; -import org.dromara.facility.domain.FacPhotovoltaicPanel; import org.dromara.facility.service.IFacMatrixService; import org.dromara.facility.service.IFacPhotovoltaicPanelPartsService; import org.dromara.facility.service.IFacPhotovoltaicPanelService; @@ -102,52 +101,6 @@ public class DemoTest { @Resource private IOutConstructionValueService constructionValueService; - @Test - void syncTest() { - List projects = projectService.lambdaQuery() - .eq(BusProject::getPId, 1968506669544656898L) - .list(); - Set projectIds = projects.stream().map(BusProject::getId).collect(Collectors.toSet()); - List zujian = photovoltaicPanelService.lambdaQuery() - .eq(FacPhotovoltaicPanel::getProgressCategoryName, "组件安装") - .in(FacPhotovoltaicPanel::getProjectId, projectIds) - .list(); - Map> zujianMap = zujian.stream() - .collect(Collectors.groupingBy(FacPhotovoltaicPanel::getMatrixId)); - List zhijia = progressCategoryService.lambdaQuery() - .eq(PgsProgressCategory::getName, "支架安装") - .in(PgsProgressCategory::getProjectId, projectIds) - .list(); - Map> zhijiaMap = zhijia.stream() - .collect(Collectors.groupingBy(PgsProgressCategory::getMatrixId)); - List newP = new ArrayList<>(); - for (Map.Entry> entry : zujianMap.entrySet()) { - Long key = entry.getKey(); - List panels = entry.getValue(); - List list = zhijiaMap.getOrDefault(key, new ArrayList<>()); - if (CollUtil.isEmpty(list)) { - continue; - } - PgsProgressCategory zhi = list.getFirst(); - List panelList = panels.stream().map(panel -> { - FacPhotovoltaicPanel p = new FacPhotovoltaicPanel(); - p.setProjectId(panel.getProjectId()); - p.setMatrixId(panel.getMatrixId()); - p.setName(panel.getName()); - p.setPositions(panel.getPositions()); - p.setProgressCategoryId(zhi.getId()); - p.setProgressCategoryName(zhi.getName()); - p.setRemark(panel.getRemark()); - p.setCreateDept(panel.getCreateDept()); - p.setCreateBy(panel.getCreateBy()); - p.setUpdateBy(panel.getUpdateBy()); - return p; - }).toList(); - newP.addAll(panelList); - } - photovoltaicPanelService.saveBatch(newP); - } - @Test void testConstructionValue() { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubConstructionUserServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubConstructionUserServiceImpl.java index 31c30cd0..d07ad2b8 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubConstructionUserServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubConstructionUserServiceImpl.java @@ -76,8 +76,6 @@ import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors; -import static org.dromara.project.domain.enums.BusAttendanceClockStatusEnum.ATTENDANCE_LIST; - /** * 施工人员Service业务层处理 * @@ -1131,7 +1129,6 @@ public class SubConstructionUserServiceImpl extends ServiceImpl constructionUserPage = this.page(pageQuery.build(), lqw); List constructionUserList = constructionUserPage.getRecords(); @@ -1197,12 +1194,8 @@ public class SubConstructionUserServiceImpl extends ServiceImpl 0) { throw new ServiceException("分包单位名称重复", HttpStatus.BAD_REQUEST); } @@ -162,11 +160,7 @@ public class SubContractorServiceImpl extends ServiceImpl 0) { throw new ServiceException("分包单位名称重复", HttpStatus.BAD_REQUEST); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/BusBillofquantitiesVersionsServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/BusBillofquantitiesVersionsServiceImpl.java index 5458be89..10bb90ba 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/BusBillofquantitiesVersionsServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/BusBillofquantitiesVersionsServiceImpl.java @@ -353,9 +353,6 @@ public class BusBillofquantitiesVersionsServiceImpl extends ServiceImpl result = baseMapper.selectVoList(lqw); - if (CollUtil.isEmpty(result)) { - return Collections.emptyList(); - } List versionss = new ArrayList<>(); result.forEach(v -> versionss.add(v.getVersions())); List busBillofquantities = busBillofquantitiesService.getBaseMapper().selectList(new LambdaQueryWrapper() diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/controller/MatMaterialsController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/controller/MatMaterialsController.java index 6fda4a7e..d17d5b47 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/controller/MatMaterialsController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/controller/MatMaterialsController.java @@ -15,9 +15,6 @@ 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.contractor.domain.dto.contractor.SubContractorQueryReq; -import org.dromara.contractor.domain.vo.contractor.SubContractorVo; -import org.dromara.contractor.service.ISubContractorService; import org.dromara.materials.domain.dto.materials.MatMaterialsCreateReq; import org.dromara.materials.domain.dto.materials.MatMaterialsGisReq; import org.dromara.materials.domain.dto.materials.MatMaterialsQueryReq; @@ -43,8 +40,6 @@ public class MatMaterialsController extends BaseController { private final IMatMaterialsService materialsService; - private final ISubContractorService contractorService; - /** * 查询材料列表 */ @@ -160,13 +155,4 @@ public class MatMaterialsController extends BaseController { @PathVariable Long[] ids) { return toAjax(materialsService.deleteWithValidByIds(List.of(ids), true)); } - - /** - * 查询分包单位列表 - */ - @SaCheckPermission("materials:materials:contractorList") - @GetMapping("/contractorList") - public R> contractorList(SubContractorQueryReq req) { - return R.ok(contractorService.queryList(req)); - } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/MatMaterialsInventory.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/MatMaterialsInventory.java index bd366632..29a2fa15 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/MatMaterialsInventory.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/MatMaterialsInventory.java @@ -94,13 +94,4 @@ public class MatMaterialsInventory extends BaseEntity { */ private String remark; - /** - * 操作人id - */ - private Long operatorId; - - /** - * 分包单位id - */ - private Long recipientId; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusAttendanceController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusAttendanceController.java index a2d546ea..b9dd35ab 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusAttendanceController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusAttendanceController.java @@ -114,22 +114,11 @@ public class BusAttendanceController extends BaseController { return toAjax(busAttendanceService.deleteWithValidByIds(List.of(ids), true)); } - /** - * 查询项目施工人员前14天考勤状况 - */ - @SaCheckPermission("project:attendance:list") + @GetMapping("/list/clockDate/twoWeek") public R> getClockDateForTwoWeekList(Long projectId) { return R.ok(busAttendanceService.getClockDateForTwoWeekList(projectId)); } - /** - * 查询项目施工人员当天考勤状况 - */ - @SaCheckPermission("project:attendance:list") - @GetMapping("/list/clockDate/today") - public R getTodayAttendanceData(Long projectId) { - return R.ok(busAttendanceService.getTodayAttendanceData(projectId)); - } @PostMapping("/exportList") public void exportList(AttendanceExportDto dto, HttpServletResponse response) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusAttendanceAppController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusAttendanceAppController.java index c4b0ded5..4bf0679c 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusAttendanceAppController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusAttendanceAppController.java @@ -1,7 +1,6 @@ package org.dromara.project.controller.app; import cn.hutool.core.collection.CollectionUtil; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import jakarta.annotation.Resource; import jakarta.validation.constraints.NotNull; @@ -129,8 +128,8 @@ public class BusAttendanceAppController extends BaseController { * 获取用户打卡异常记录 */ @GetMapping("/getAbnormalAttendance/{projectId}") - public TableDataInfo getAbnormalAttendance(@NotNull @PathVariable("projectId") Long projectId, PageQuery pageQuery){ - return attendanceService.getAbnormalAttendance(projectId,pageQuery); + public R> getAbnormalAttendance(@NotNull @PathVariable("projectId") Long projectId){ + return R.ok(attendanceService.getAbnormalAttendance(projectId)); } /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusLeave.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusLeave.java index a43cc8d1..798cffc6 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusLeave.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusLeave.java @@ -140,14 +140,4 @@ public class BusLeave extends BaseEntity { */ private String auditStatus; - /** - * 时间类型 1-天 2-小时 - */ - private String timeType; - - /** - * 时间段类型 1-上午 2-下午 - */ - private String periodType; - } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusAttendanceService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusAttendanceService.java index b537a24b..f045b7fb 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusAttendanceService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusAttendanceService.java @@ -1,8 +1,8 @@ package org.dromara.project.service; -import com.baomidou.mybatisplus.core.metadata.IPage; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotNull; +import org.dromara.common.core.domain.R; import org.dromara.project.domain.dto.attendance.*; import org.dromara.project.domain.vo.BusAttendanceVo; import org.dromara.project.domain.bo.BusAttendanceBo; @@ -13,9 +13,12 @@ import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.service.IService; import org.dromara.project.domain.vo.BusMonthAttendanceVo; import org.dromara.project.domain.vo.attendance.*; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; +import java.time.LocalDate; import java.util.Collection; import java.util.List; @@ -129,9 +132,9 @@ public interface IBusAttendanceService extends IService{ List getMonthAttendance(Long projectId, String month); /** - * 获取用户打卡异常记录 + * 获取用户指定月份的打卡记录 */ - TableDataInfo getAbnormalAttendance(@NotNull @PathVariable("projectId") Long projectId, PageQuery pageQuery); + List getAbnormalAttendance(@NotNull @PathVariable("projectId") Long projectId); /** * 统计指定日期的打卡人员 @@ -164,11 +167,6 @@ public interface IBusAttendanceService extends IService{ */ List getClockDateForTwoWeekList(Long projectId); - /** - * 获取项目当天的考勤数据 - */ - BusAttendanceClockDateForTwoWeekVo getTodayAttendanceData(Long projectId); - /** * 获取导出的考勤数据 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceServiceImpl.java index ad0e0f2c..cbff7503 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceServiceImpl.java @@ -6,7 +6,6 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,6 +14,7 @@ import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.xssf.usermodel.XSSFWorkbook; @@ -64,8 +64,6 @@ import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; -import static org.dromara.project.domain.enums.BusAttendanceClockStatusEnum.ATTENDANCE_LIST; - /** * 考勤Service业务层处理 * @@ -324,16 +322,18 @@ public class BusAttendanceServiceImpl extends ServiceImpl rangeIds = new ArrayList<>(); if (isConstruct) { BusProjectTeamMember one = projectTeamMemberService.getOne(Wrappers.lambdaQuery(BusProjectTeamMember.class) @@ -647,7 +636,7 @@ public class BusAttendanceServiceImpl extends ServiceImpl matchingRange = JSTUtil.findMatchingRange(req.getLat(), req.getLng(), punchRangeList); return matchingRange != null; @@ -718,7 +707,7 @@ public class BusAttendanceServiceImpl extends ServiceImpl getAbnormalAttendance(Long projectId, PageQuery pageQuery) { + public List getAbnormalAttendance(Long projectId) { List abnormalList = Arrays.asList(BusAttendanceClockStatusEnum.LATE.getValue(), BusAttendanceClockStatusEnum.LEAVEEARLY.getValue(), @@ -733,16 +722,16 @@ public class BusAttendanceServiceImpl extends ServiceImpl "1".equals(relevancy.getUserType())); - IPage busAttendanceVoIPage = baseMapper.selectVoPage(pageQuery.build(), Wrappers.lambdaQuery(BusAttendance.class) + List busAttendanceVos = baseMapper.selectVoList(Wrappers.lambdaQuery(BusAttendance.class) .eq(BusAttendance::getUserId, userId) .eq(b, BusAttendance::getProjectId, projectId) .in(BusAttendance::getClockStatus, abnormalList) ); //转换星期几 - for (BusAttendanceVo busAttendanceVo : busAttendanceVoIPage.getRecords()) { + for (BusAttendanceVo busAttendanceVo : busAttendanceVos) { busAttendanceVo.setWeek(busAttendanceVo.getClockDate().getDayOfWeek().getValue()); } - return TableDataInfo.build(busAttendanceVoIPage); + return busAttendanceVos; } /** @@ -879,25 +868,6 @@ public class BusAttendanceServiceImpl extends ServiceImpl allUserIds = constructionUserService.list(Wrappers.lambdaQuery() .eq(SubConstructionUser::getUserRole, "0") .eq(SubConstructionUser::getProjectId,projectId) - .isNotNull(SubConstructionUser::getTeamId) ).stream().map(SubConstructionUser::getSysUserId).toList(); // 往前14天,包含今天 LocalDate startDate = now.minusDays(14); - LocalDate endDate = now.minusDays(1); List list = list(Wrappers.lambdaQuery() .eq(BusAttendance::getProjectId, projectId) .notIn(CollectionUtil.isNotEmpty(excludeUserIds),BusAttendance::getUserId, excludeUserIds) - .between(BusAttendance::getClockDate, startDate, endDate) + .between(BusAttendance::getClockDate, startDate, now) .orderByAsc(BusAttendance::getClockDate) ); @@ -1215,9 +1183,10 @@ public class BusAttendanceServiceImpl extends ServiceImpl result = new ArrayList<>(); + List validStatusList = Arrays.asList("1", "2", "3", "5"); LocalDate currentDate = startDate; - while (!currentDate.isAfter(endDate)) { + while (!currentDate.isAfter(now)) { Map> userAttendanceMap = dateUserMap.getOrDefault(currentDate, new HashMap<>()); int full = 0, half = 0, absent = 0; @@ -1227,11 +1196,13 @@ public class BusAttendanceServiceImpl extends ServiceImpl= 1) { + if (validCount >= 2) { full++; + } else if (validCount == 1) { + half++; } else { absent++; } @@ -1242,6 +1213,14 @@ public class BusAttendanceServiceImpl extends ServiceImpl excludeUserIds = constructionUserService.list(Wrappers.lambdaQuery() - .ne(SubConstructionUser::getUserRole, "0") - ).stream().map(SubConstructionUser::getSysUserId).toList(); - - List allUserIds = constructionUserService.list(Wrappers.lambdaQuery() - .eq(SubConstructionUser::getUserRole, "0") - .eq(SubConstructionUser::getProjectId,projectId) - .isNotNull(SubConstructionUser::getTeamId) - ).stream().map(SubConstructionUser::getSysUserId).toList(); - - - List list = list(Wrappers.lambdaQuery() - .eq(BusAttendance::getProjectId, projectId) - .notIn(CollectionUtil.isNotEmpty(excludeUserIds),BusAttendance::getUserId, excludeUserIds) - .eq(BusAttendance::getClockDate, now) - .orderByAsc(BusAttendance::getClockDate) - ); - - Map> collect = list.stream().collect(Collectors.groupingBy(BusAttendance::getUserId)); - - int full = 0, half = 0, absent = 0; - - for (Map.Entry> userEntry : collect.entrySet()) { - List records = userEntry.getValue(); - - long validCount = records.stream() - .map(BusAttendance::getClockStatus) - .filter(ATTENDANCE_LIST::contains) - .count(); - - if (validCount >= 2) { - full++; - } else if (validCount == 1) { - half++; - } else { - absent++; - } - } - - BusAttendanceClockDateForTwoWeekVo vo = new BusAttendanceClockDateForTwoWeekVo(); - vo.setClockDate(now); - vo.setAttendance(full); - vo.setHalfAttendance(half); - vo.setAbsenteeism(absent); - //计算考勤率 - vo.setAllUserNum(allUserIds.size()); - vo.setClockNum(full+half); - vo.setAttendanceRate(BigDecimalUtil.toPercentage(new BigDecimal(full+half), - new BigDecimal(allUserIds.size()))); - - return vo; - } - @Override public void getExportList(AttendanceExportDto dto, HttpServletResponse response) { try (OutputStream outputStream = response.getOutputStream()) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusLeaveServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusLeaveServiceImpl.java index 0a8164dc..4b6dfd4e 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusLeaveServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusLeaveServiceImpl.java @@ -399,10 +399,8 @@ public class BusLeaveServiceImpl extends ServiceImpl LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper .eq(BusLeave::getUserId, userId) - .lt(BusLeave::getStartTime, newEnd) // 已有记录的开始时间 < 新记录的结束时间 - .gt(BusLeave::getEndTime, newStart) - .eq(BusLeave::getAuditStatus, BusinessStatusEnum.FINISH.getStatus()) - ; // 已有记录的结束时间 > 新记录的开始时间 + .le(BusLeave::getStartTime, newEnd) // 已有记录的开始时间 < 新记录的结束时间 + .ge(BusLeave::getEndTime, newStart); // 已有记录的结束时间 > 新记录的开始时间 // 4. 执行冲突校验 if (count(wrapper) > 0) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectTeamMemberServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectTeamMemberServiceImpl.java index 58f1f253..70c90ac3 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectTeamMemberServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectTeamMemberServiceImpl.java @@ -329,7 +329,10 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl projectIds; - /** - * app用户类型 0-施工人员 1-管理人员 2-分包人员 - */ + private String appUserType; /** 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 6fec2345..76d183f9 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 @@ -50,7 +50,6 @@ import org.dromara.system.mapper.*; import org.dromara.system.service.ISysOssService; import org.dromara.system.service.ISysUserFileService; import org.dromara.system.service.ISysUserService; -import org.jetbrains.annotations.NotNull; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.context.annotation.Lazy; @@ -930,25 +929,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService { projects = projectIds; } - List sysUserRoles = getSysUserRoles(userId, appUserType, projects); - userRoleMapper.insertBatch(sysUserRoles); - - return baseMapper.update(null, - new LambdaUpdateWrapper() - .set(SysUser::getAppUserType, appUserType) - .set(contractorId!=null,SysUser::getContractorId, contractorId) - .eq(SysUser::getUserId, userId)) > 0; - } - - private List getSysUserRoles(Long userId, String appUserType, List projects) { - Long roleId; - if("0".equals(appUserType)){ - roleId = 2L; - }else if("1".equals(appUserType)){ - roleId = 4L; - }else { - roleId = 5L; - } + Long roleId = "1".equals(appUserType)?4L:5L; ArrayList sysUserRoles = new ArrayList<>(); for (Long project : projects) { SysUserRole sysUserRole = new SysUserRole(); @@ -957,7 +938,13 @@ public class SysUserServiceImpl implements ISysUserService, UserService { sysUserRole.setRoleId(roleId); sysUserRoles.add(sysUserRole); } - return sysUserRoles; + userRoleMapper.insertBatch(sysUserRoles); + + return baseMapper.update(null, + new LambdaUpdateWrapper() + .set(SysUser::getAppUserType, appUserType) + .set(contractorId!=null,SysUser::getContractorId, contractorId) + .eq(SysUser::getUserId, userId)) > 0; } @Override diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/controller/XzdBidPreProjectController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/controller/XzdBidPreProjectController.java new file mode 100644 index 00000000..af2019c8 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/controller/XzdBidPreProjectController.java @@ -0,0 +1,109 @@ +package org.dromara.xzd.biddingManagement.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.dromara.xzd.biddingManagement.domain.dto.BiddingManagementDto; +import org.dromara.xzd.biddingManagement.domain.dto.QuerBiddingManagementDto; +import org.dromara.xzd.biddingManagement.domain.vo.QuerListXzdBidPreVo; +import org.dromara.xzd.biddingManagement.domain.vo.QueryListXzdVo; +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.xzd.biddingManagement.domain.vo.XzdBidPreProjectVo; +import org.dromara.xzd.biddingManagement.domain.bo.XzdBidPreProjectBo; +import org.dromara.xzd.biddingManagement.service.IXzdBidPreProjectService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 标前立项 + * + * @author Lion Li + * @date 2025-10-10 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/biddingManagement/bidPreProject") +public class XzdBidPreProjectController extends BaseController { + + private final IXzdBidPreProjectService xzdBidPreProjectService; + + /** + * 查询标前立项列表 + */ + @SaCheckPermission("biddingManagement:bidPreProject:list") + @GetMapping("/list") + public QueryListXzdVo list(QuerBiddingManagementDto bo, PageQuery pageQuery) { + return xzdBidPreProjectService.queryPageList(bo, pageQuery); + } + + /** + * 导出标前立项列表 + */ + @SaCheckPermission("biddingManagement:bidPreProject:export") + @Log(title = "标前立项", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdBidPreProjectBo bo, HttpServletResponse response) { + List list = xzdBidPreProjectService.queryList(bo); + ExcelUtil.exportExcel(list, "标前立项", XzdBidPreProjectVo.class, response); + } + + /** + * 获取标前立项详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("biddingManagement:bidPreProject:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdBidPreProjectService.queryById(id)); + } + + /** + * 新增标前立项 + */ + @SaCheckPermission("biddingManagement:bidPreProject:add") + @Log(title = "标前立项", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BiddingManagementDto bo) { + return toAjax(xzdBidPreProjectService.insertByBo(bo)); + } + + /** + * 修改标前立项 + */ + @SaCheckPermission("biddingManagement:bidPreProject:edit") + @Log(title = "标前立项", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@RequestBody BiddingManagementDto bo ) { + return toAjax(xzdBidPreProjectService.updateByBo(bo)); + } + + /** + * 删除标前立项 + * + * @param ids 主键串 + */ + @SaCheckPermission("biddingManagement:bidPreProject:remove") + @Log(title = "标前立项", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdBidPreProjectService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/controller/XzdProjectRiskAssessmentController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/controller/XzdProjectRiskAssessmentController.java new file mode 100644 index 00000000..fe9bb806 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/controller/XzdProjectRiskAssessmentController.java @@ -0,0 +1,106 @@ +package org.dromara.xzd.biddingManagement.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.dromara.xzd.biddingManagement.domain.bo.XzdProjectRiskAssessmentBo; +import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectRiskAssessmentVo; +import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectVo; +import org.dromara.xzd.biddingManagement.service.IXzdProjectRiskAssessmentService; +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.common.mybatis.core.page.TableDataInfo; + +/** + * 项目风险评估签审意见 + * + * @author Lion Li + * @date 2025-10-10 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/xzd/projectRiskAssessment") +public class XzdProjectRiskAssessmentController extends BaseController { + + private final IXzdProjectRiskAssessmentService xzdProjectRiskAssessmentService; + + /** + * 查询项目风险评估签审意见列表 + */ + @SaCheckPermission("xzd:projectRiskAssessment:list") + @GetMapping("/list") + public TableDataInfo list(XzdProjectVo bo, PageQuery pageQuery) { + return xzdProjectRiskAssessmentService.queryPageList(bo, pageQuery); + } + + /** + * 导出项目风险评估签审意见列表 + */ + @SaCheckPermission("xzd:projectRiskAssessment:export") + @Log(title = "项目风险评估签审意见", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdProjectRiskAssessmentBo bo, HttpServletResponse response) { + List list = xzdProjectRiskAssessmentService.queryList(bo); + ExcelUtil.exportExcel(list, "项目风险评估签审意见", XzdProjectRiskAssessmentVo.class, response); + } + + /** + * 获取项目风险评估签审意见详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("xzd:projectRiskAssessment:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdProjectRiskAssessmentService.queryById(id)); + } + + /** + * 新增项目风险评估签审意见 + */ + @SaCheckPermission("xzd:projectRiskAssessment:add") + @Log(title = "项目风险评估签审意见", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdProjectRiskAssessmentBo bo) { + return toAjax(xzdProjectRiskAssessmentService.insertByBo(bo)); + } + + /** + * 修改项目风险评估签审意见 + */ + @SaCheckPermission("xzd:projectRiskAssessment:edit") + @Log(title = "项目风险评估签审意见", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdProjectRiskAssessmentBo bo) { + return toAjax(xzdProjectRiskAssessmentService.updateByBo(bo)); + } + + /** + * 删除项目风险评估签审意见 + * + * @param ids 主键串 + */ + @SaCheckPermission("xzd:projectRiskAssessment:remove") + @Log(title = "项目风险评估签审意见", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdProjectRiskAssessmentService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/XzdBidPreProject.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/XzdBidPreProject.java new file mode 100644 index 00000000..3877b9c3 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/XzdBidPreProject.java @@ -0,0 +1,126 @@ +package org.dromara.xzd.biddingManagement.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 标前立项对象 xzd_bid_pre_project + * + * @author Lion Li + * @date 2025-10-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_bid_pre_project") +public class XzdBidPreProject extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 项目编码 + */ + private String projectNumber; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 国家 + */ + private String country; + + /** + * 省 + */ + private String province; + + /** + * 城市 + */ + private String city; + + /** + * 区县 + */ + private String district; + + /** + * 工程地点 + */ + private String projectLocation; + + /** + * 资金来源 + */ + private String capitalSource; + + /** + * 承包方式 + */ + private String contractingMethod; + + /** + * 经营模式 + */ + private String operationMode; + + /** + * 项目类型 + */ + private Long projectTypeId; + + /** + * 招标方式 + */ + private String biddingMethod; + + /** + * 联系方法 + */ + private String liaisonMethod; + + /** + * 投资单位 + */ + private String investmentUnit; + + /** + * 工程造价(万元) + */ + private Long projectCost; + + /** + * 资料费 + */ + private Long informationCost; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/XzdBqlxProjectInfo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/XzdBqlxProjectInfo.java new file mode 100644 index 00000000..0306c6c3 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/XzdBqlxProjectInfo.java @@ -0,0 +1,193 @@ +package org.dromara.xzd.biddingManagement.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; + +/** + * 标前立项对象 xzd_bqlx_project_info + * + * @author Lion Li + * @date 2025-10-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_bqlx_project_info") +public class XzdBqlxProjectInfo extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 关联标前立项ID + */ + private Long bidPreProjectId; + + /** + * 预计开工日期 + */ + private Date expectedStartDate; + + /** + * 资质要求 + */ + private String qualificationRequirement; + + /** + * 报名开始时间 + */ + private Date bidStartDate; + + /** + * 报名截止时间 + */ + private Date bidEndDate; + + /** + * 投标截止时间 + */ + private Date submissionDeadline; + + /** + * 设计情况 + */ + private String designDescription; + + /** + * 工程概况 + */ + private String projectStatus; + + /** + * 招标公告地址 + */ + private String biddingAnnouncementAddress; + + /** + * 质量要求 + */ + private String qualityRequirement; + + /** + * 工期要求(天) + */ + private Long durationDays; + + /** + * 最低资质要求 + */ + private String lowestQualificationRequirement; + + /** + * 项目经理要求 + */ + private String projectManagerRequirement; + + /** + * 业绩要求 + */ + private String performanceRequirement; + + /** + * 开标时间 + */ + private Date startDate; + + /** + * 评标方式 + */ + private String evaluationMethod; + + /** + * 投标保证金形式 + */ + private String biddingDepositForm; + + /** + * 投标保证金 + */ + private Long biddingDeposit; + + /** + * 建设单位 + */ + private String constructionUnit; + + /** + * 建设单位联系人 + */ + private String constructionPerson; + + /** + * 建设单位联系方式 + */ + private String constructionMethod; + + /** + * 招标单位 + */ + private String biddingUnit; + + /** + * 招标单位联系人 + */ + private String biddingPerson; + + /** + * 招标单位联系方式 + */ + private String biddingMethod; + + /** + * 成本价 + */ + private Long costPrice; + + /** + * 招标控制价 + */ + private Long biddingPriceControl; + + /** + * 项目编码 + */ + private String projectNumber; + + /** + * 默认财务组织 + */ + private String defaultFinance; + + /** + * 涉及财务组织 + */ + private String involveFinance; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/XzdProjectRiskAssessment.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/XzdProjectRiskAssessment.java new file mode 100644 index 00000000..7a1e8382 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/XzdProjectRiskAssessment.java @@ -0,0 +1,121 @@ +package org.dromara.xzd.biddingManagement.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 项目风险评估签审意见对象 xzd_project_risk_assessment + * + * @author Lion Li + * @date 2025-10-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_project_risk_assessment") +public class XzdProjectRiskAssessment extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 单据编号 + */ + private String documentNumber; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 项目业主 + */ + private String projectBusinessOwner; + + /** + * 联合体成员方 + */ + private String jointBodyMembers; + + /** + * 预计合同额(万元) + */ + private Long estimatedContractAmount; + + /** + * 单价指标 + */ + private String unitPriceIndex; + + /** + * 工期风险 + */ + private String engineeringRisk; + + /** + * 技术风险 + */ + private String technicalRisk; + + /** + * 经济风险 + */ + private String economicRisk; + + /** + * 合同风险 + */ + private String contractRisk; + + /** + * 人员风险 + */ + private String personnelRisk; + + /** + * 施工风险 + */ + private String constructionRisk; + + /** + * 管理风险 + */ + private String managementRisk; + + /** + * 分包风险 + */ + private String subcontractRisk; + + /** + * 其他风险 + */ + private String otherRisks; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/bo/XzdBidPreProjectBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/bo/XzdBidPreProjectBo.java new file mode 100644 index 00000000..8ad278e6 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/bo/XzdBidPreProjectBo.java @@ -0,0 +1,134 @@ +package org.dromara.xzd.biddingManagement.domain.bo; + +import org.dromara.xzd.biddingManagement.domain.XzdBidPreProject; +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.*; + +/** + * 标前立项业务对象 xzd_bid_pre_project + * + * @author Lion Li + * @date 2025-10-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdBidPreProject.class, reverseConvertGenerate = false) +public class XzdBidPreProjectBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 项目编码 + */ + @NotBlank(message = "项目编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String projectNumber; + + /** + * 项目名称 + */ + @NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String projectName; + + /** + * 国家 + */ + @NotBlank(message = "国家不能为空", groups = { AddGroup.class, EditGroup.class }) + private String country; + + /** + * 省 + */ + @NotBlank(message = "省不能为空", groups = { AddGroup.class, EditGroup.class }) + private String province; + + /** + * 城市 + */ + @NotBlank(message = "城市不能为空", groups = { AddGroup.class, EditGroup.class }) + private String city; + + /** + * 区县 + */ + @NotBlank(message = "区县不能为空", groups = { AddGroup.class, EditGroup.class }) + private String district; + + /** + * 工程地点 + */ + private String projectLocation; + + /** + * 资金来源 + */ + private String capitalSource; + + /** + * 承包方式 + */ + private String contractingMethod; + + /** + * 经营模式 + */ + private String operationMode; + + /** + * 项目类型 + */ + @NotNull(message = "项目类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long projectTypeId; + + /** + * 招标方式 + */ + private String biddingMethod; + + /** + * 联系方法 + */ + private String liaisonMethod; + + /** + * 投资单位 + */ + private String investmentUnit; + + /** + * 工程造价(万元) + */ + @NotNull(message = "工程造价(万元)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long projectCost; + + /** + * 资料费 + */ + @NotNull(message = "资料费不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long informationCost; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/bo/XzdBqlxProjectInfoBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/bo/XzdBqlxProjectInfoBo.java new file mode 100644 index 00000000..fee62c83 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/bo/XzdBqlxProjectInfoBo.java @@ -0,0 +1,195 @@ +package org.dromara.xzd.biddingManagement.domain.bo; + +import org.dromara.xzd.biddingManagement.domain.XzdBqlxProjectInfo; +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; + +/** + * 标前立项业务对象 xzd_bqlx_project_info + * + * @author Lion Li + * @date 2025-10-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdBqlxProjectInfo.class, reverseConvertGenerate = false) +public class XzdBqlxProjectInfoBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 关联标前立项ID + */ + @NotNull(message = "关联标前立项ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long bidPreProjectId; + + /** + * 预计开工日期 + */ + private Date expectedStartDate; + + /** + * 资质要求 + */ + private String qualificationRequirement; + + /** + * 报名开始时间 + */ + private Date bidStartDate; + + /** + * 报名截止时间 + */ + @NotNull(message = "报名截止时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date bidEndDate; + + /** + * 投标截止时间 + */ + private Date submissionDeadline; + + /** + * 设计情况 + */ + private String designDescription; + + /** + * 工程概况 + */ + private String projectStatus; + + /** + * 招标公告地址 + */ + private String biddingAnnouncementAddress; + + /** + * 质量要求 + */ + private String qualityRequirement; + + /** + * 工期要求(天) + */ + private Long durationDays; + + /** + * 最低资质要求 + */ + private String lowestQualificationRequirement; + + /** + * 项目经理要求 + */ + private String projectManagerRequirement; + + /** + * 业绩要求 + */ + private String performanceRequirement; + + /** + * 开标时间 + */ + private Date startDate; + + /** + * 评标方式 + */ + private String evaluationMethod; + + /** + * 投标保证金形式 + */ + private String biddingDepositForm; + + /** + * 投标保证金 + */ + private Long biddingDeposit; + + /** + * 建设单位 + */ + private String constructionUnit; + + /** + * 建设单位联系人 + */ + private String constructionPerson; + + /** + * 建设单位联系方式 + */ + private String constructionMethod; + + /** + * 招标单位 + */ + private String biddingUnit; + + /** + * 招标单位联系人 + */ + private String biddingPerson; + + /** + * 招标单位联系方式 + */ + private String biddingMethod; + + /** + * 成本价 + */ + private Long costPrice; + + /** + * 招标控制价 + */ + private Long biddingPriceControl; + + /** + * 项目编码 + */ + @NotBlank(message = "项目编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String projectNumber; + + /** + * 默认财务组织 + */ + private String defaultFinance; + + /** + * 涉及财务组织 + */ + private String involveFinance; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/bo/XzdProjectRiskAssessmentBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/bo/XzdProjectRiskAssessmentBo.java new file mode 100644 index 00000000..18597030 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/bo/XzdProjectRiskAssessmentBo.java @@ -0,0 +1,120 @@ +package org.dromara.xzd.biddingManagement.domain.bo; + +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 org.dromara.xzd.biddingManagement.domain.XzdProjectRiskAssessment; + +/** + * 项目风险评估签审意见业务对象 xzd_project_risk_assessment + * + * @author Lion Li + * @date 2025-10-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdProjectRiskAssessment.class, reverseConvertGenerate = false) +public class XzdProjectRiskAssessmentBo extends BaseEntity { + + /** + * 主键ID + */ + private Long id; + + /** + * 单据编号 + */ + private String documentNumber; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 项目业主 + */ + private String projectBusinessOwner; + + /** + * 联合体成员方 + */ + private String jointBodyMembers; + + /** + * 预计合同额(万元) + */ + @NotNull(message = "预计合同额(万元)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long estimatedContractAmount; + + /** + * 单价指标 + */ + private String unitPriceIndex; + + /** + * 工期风险 + */ + private String engineeringRisk; + + /** + * 技术风险 + */ + private String technicalRisk; + + /** + * 经济风险 + */ + private String economicRisk; + + /** + * 合同风险 + */ + private String contractRisk; + + /** + * 人员风险 + */ + private String personnelRisk; + + /** + * 施工风险 + */ + private String constructionRisk; + + /** + * 管理风险 + */ + private String managementRisk; + + /** + * 分包风险 + */ + private String subcontractRisk; + + /** + * 其他风险 + */ + private String otherRisks; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/dto/BiddingManagementDto.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/dto/BiddingManagementDto.java new file mode 100644 index 00000000..e2d8a431 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/dto/BiddingManagementDto.java @@ -0,0 +1,13 @@ +package org.dromara.xzd.biddingManagement.domain.dto; + +import lombok.Data; +import org.dromara.xzd.biddingManagement.domain.bo.XzdBidPreProjectBo; +import org.dromara.xzd.biddingManagement.domain.bo.XzdBqlxProjectInfoBo; + +@Data +public class BiddingManagementDto { + + private XzdBidPreProjectBo xzdBidPreProjectBo; + + private XzdBqlxProjectInfoBo xzdBqlxProjectInfoBo; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/dto/QuerBiddingManagementDto.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/dto/QuerBiddingManagementDto.java new file mode 100644 index 00000000..d54d6820 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/dto/QuerBiddingManagementDto.java @@ -0,0 +1,52 @@ +package org.dromara.xzd.biddingManagement.domain.dto; + + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; + +@Data +public class QuerBiddingManagementDto { + +// XzdBidPreProjectBo + /** + * 项目编码 + */ + private String projectNumber; + + /** + * 项目名称 + */ + private String projectName; + + + /** + * 项目类型 + */ + private Long projectTypeId; + + + private Long createBy; + + + private Long createDept; + + +// XzdBqlxProjectInfoBo + /** + * 建设单位 + */ + private String constructionUnit; + + /** + * 备注 + */ + private String remark; + + + private Integer num; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/QuerListXzdBidPreVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/QuerListXzdBidPreVo.java new file mode 100644 index 00000000..e02c9f72 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/QuerListXzdBidPreVo.java @@ -0,0 +1,13 @@ +package org.dromara.xzd.biddingManagement.domain.vo; + + +import lombok.Data; + +@Data +public class QuerListXzdBidPreVo { + + private XzdBidPreProjectVo xzdBidPreProjectVo; + + private XzdBqlxProjectInfoVo xzdBqlxProjectInfoVo; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/QueryListXzdVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/QueryListXzdVo.java new file mode 100644 index 00000000..6ce00b82 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/QueryListXzdVo.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.biddingManagement.domain.vo; + +import lombok.Builder; +import lombok.Data; + +import java.util.List; + + +@Data +public class QueryListXzdVo { + + private List list; + + private Integer total; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/XzdBidPreProjectVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/XzdBidPreProjectVo.java new file mode 100644 index 00000000..68434782 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/XzdBidPreProjectVo.java @@ -0,0 +1,164 @@ +package org.dromara.xzd.biddingManagement.domain.vo; + +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.xzd.biddingManagement.domain.XzdBidPreProject; +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; + + + +/** + * 标前立项视图对象 xzd_bid_pre_project + * + * @author Lion Li + * @date 2025-10-10 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdBidPreProject.class) +public class XzdBidPreProjectVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 项目编码 + */ + @ExcelProperty(value = "项目编码") + private String projectNumber; + + /** + * 项目名称 + */ + @ExcelProperty(value = "项目名称") + private String projectName; + + /** + * 国家 + */ + @ExcelProperty(value = "国家") + private String country; + + /** + * 省 + */ + @ExcelProperty(value = "省") + private String province; + + /** + * 城市 + */ + @ExcelProperty(value = "城市") + private String city; + + /** + * 区县 + */ + @ExcelProperty(value = "区县") + private String district; + + /** + * 工程地点 + */ + @ExcelProperty(value = "工程地点") + private String projectLocation; + + /** + * 资金来源 + */ + @ExcelProperty(value = "资金来源") + private String capitalSource; + + /** + * 承包方式 + */ + @ExcelProperty(value = "承包方式", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "xzd_contracting_method") + private String contractingMethod; + + /** + * 经营模式 + */ + @ExcelProperty(value = "经营模式", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "xzd_business_model") + private String operationMode; + + /** + * 项目类型 + */ + @ExcelProperty(value = "项目类型") + private Long projectTypeId; + + /** + * 招标方式 + */ + @ExcelProperty(value = "招标方式", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "xzd_bidding_method") + private String biddingMethod; + + /** + * 联系方法 + */ + @ExcelProperty(value = "联系方法") + private String liaisonMethod; + + /** + * 投资单位 + */ + @ExcelProperty(value = "投资单位") + private String investmentUnit; + + /** + * 工程造价(万元) + */ + @ExcelProperty(value = "工程造价", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "万=元") + private Long projectCost; + + /** + * 资料费 + */ + @ExcelProperty(value = "资料费") + private Long informationCost; + + /** + * 文件ID + */ + @ExcelProperty(value = "文件ID") + private String fileId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 审核状态 + */ + @ExcelProperty(value = "审核状态") + private String auditStatus; + + private Long createBy; + + + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy") + private String createByUserName; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/XzdBqlxProjectInfoVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/XzdBqlxProjectInfoVo.java new file mode 100644 index 00000000..35afd7b2 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/XzdBqlxProjectInfoVo.java @@ -0,0 +1,235 @@ +package org.dromara.xzd.biddingManagement.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.xzd.biddingManagement.domain.XzdBqlxProjectInfo; +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; + + + +/** + * 标前立项视图对象 xzd_bqlx_project_info + * + * @author Lion Li + * @date 2025-10-10 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdBqlxProjectInfo.class) +public class XzdBqlxProjectInfoVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 关联标前立项ID + */ + @ExcelProperty(value = "关联标前立项ID") + private Long bidPreProjectId; + + /** + * 预计开工日期 + */ + @ExcelProperty(value = "预计开工日期") + private Date expectedStartDate; + + /** + * 资质要求 + */ + @ExcelProperty(value = "资质要求") + private String qualificationRequirement; + + /** + * 报名开始时间 + */ + @ExcelProperty(value = "报名开始时间") + private Date bidStartDate; + + /** + * 报名截止时间 + */ + @ExcelProperty(value = "报名截止时间") + private Date bidEndDate; + + /** + * 投标截止时间 + */ + @ExcelProperty(value = "投标截止时间") + private Date submissionDeadline; + + /** + * 设计情况 + */ + @ExcelProperty(value = "设计情况") + private String designDescription; + + /** + * 工程概况 + */ + @ExcelProperty(value = "工程概况") + private String projectStatus; + + /** + * 招标公告地址 + */ + @ExcelProperty(value = "招标公告地址") + private String biddingAnnouncementAddress; + + /** + * 质量要求 + */ + @ExcelProperty(value = "质量要求") + private String qualityRequirement; + + /** + * 工期要求(天) + */ + @ExcelProperty(value = "工期要求", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "天=") + private Long durationDays; + + /** + * 最低资质要求 + */ + @ExcelProperty(value = "最低资质要求") + private String lowestQualificationRequirement; + + /** + * 项目经理要求 + */ + @ExcelProperty(value = "项目经理要求") + private String projectManagerRequirement; + + /** + * 业绩要求 + */ + @ExcelProperty(value = "业绩要求") + private String performanceRequirement; + + /** + * 开标时间 + */ + @ExcelProperty(value = "开标时间") + private Date startDate; + + /** + * 评标方式 + */ + @ExcelProperty(value = "评标方式", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "xzd_evaluation_method") + private String evaluationMethod; + + /** + * 投标保证金形式 + */ + @ExcelProperty(value = "投标保证金形式", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "xzd_margin_type") + private String biddingDepositForm; + + /** + * 投标保证金 + */ + @ExcelProperty(value = "投标保证金") + private Long biddingDeposit; + + /** + * 建设单位 + */ + @ExcelProperty(value = "建设单位") + private String constructionUnit; + + /** + * 建设单位联系人 + */ + @ExcelProperty(value = "建设单位联系人") + private String constructionPerson; + + /** + * 建设单位联系方式 + */ + @ExcelProperty(value = "建设单位联系方式") + private String constructionMethod; + + /** + * 招标单位 + */ + @ExcelProperty(value = "招标单位") + private String biddingUnit; + + /** + * 招标单位联系人 + */ + @ExcelProperty(value = "招标单位联系人") + private String biddingPerson; + + /** + * 招标单位联系方式 + */ + @ExcelProperty(value = "招标单位联系方式") + private String biddingMethod; + + /** + * 成本价 + */ + @ExcelProperty(value = "成本价") + private Long costPrice; + + /** + * 招标控制价 + */ + @ExcelProperty(value = "招标控制价") + private Long biddingPriceControl; + + /** + * 项目编码 + */ + @ExcelProperty(value = "项目编码") + private String projectNumber; + + /** + * 默认财务组织 + */ + @ExcelProperty(value = "默认财务组织") + private String defaultFinance; + + /** + * 涉及财务组织 + */ + @ExcelProperty(value = "涉及财务组织") + private String involveFinance; + + /** + * 文件ID + */ + @ExcelProperty(value = "文件ID") + private String fileId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 审核状态 + */ + @ExcelProperty(value = "审核状态") + private String auditStatus; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/XzdProjectRiskAssessmentVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/XzdProjectRiskAssessmentVo.java new file mode 100644 index 00000000..b77a1a44 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/XzdProjectRiskAssessmentVo.java @@ -0,0 +1,168 @@ +package org.dromara.xzd.biddingManagement.domain.vo; + +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 org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.xzd.biddingManagement.domain.XzdProjectRiskAssessment; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + + + +/** + * 项目风险评估签审意见视图对象 xzd_project_risk_assessment + * + * @author Lion Li + * @date 2025-10-10 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdProjectRiskAssessment.class) +public class XzdProjectRiskAssessmentVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 单据编号 + */ + @ExcelProperty(value = "单据编号") + private String documentNumber; + + /** + * 项目名称 + */ + @ExcelProperty(value = "项目名称") + private String projectName; + + /** + * 项目业主 + */ + @ExcelProperty(value = "项目业主") + private String projectBusinessOwner; + + /** + * 联合体成员方 + */ + @ExcelProperty(value = "联合体成员方") + private String jointBodyMembers; + + /** + * 预计合同额(万元) + */ + @ExcelProperty(value = "预计合同额(万元)") + private Long estimatedContractAmount; + + /** + * 单价指标 + */ + @ExcelProperty(value = "单价指标") + private String unitPriceIndex; + + /** + * 工期风险 + */ + @ExcelProperty(value = "工期风险", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "xzd_risk_assessment_type") + private String engineeringRisk; + + /** + * 技术风险 + */ + @ExcelProperty(value = "技术风险", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "xzd_risk_assessment_type") + private String technicalRisk; + + /** + * 经济风险 + */ + @ExcelProperty(value = "经济风险", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "xzd_risk_assessment_type") + private String economicRisk; + + /** + * 合同风险 + */ + @ExcelProperty(value = "合同风险", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "xzd_risk_assessment_type") + private String contractRisk; + + /** + * 人员风险 + */ + @ExcelProperty(value = "人员风险", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "xzd_risk_assessment_type") + private String personnelRisk; + + /** + * 施工风险 + */ + @ExcelProperty(value = "施工风险", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "xzd_risk_assessment_type") + private String constructionRisk; + + /** + * 管理风险 + */ + @ExcelProperty(value = "管理风险", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "xzd_risk_assessment_type") + private String managementRisk; + + /** + * 分包风险 + */ + @ExcelProperty(value = "分包风险", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "xzd_risk_assessment_type") + private String subcontractRisk; + + /** + * 其他风险 + */ + @ExcelProperty(value = "其他风险", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "xzd_risk_assessment_type") + private String otherRisks; + + /** + * 文件ID + */ + @ExcelProperty(value = "文件ID") + private String fileId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 审核状态 + */ + @ExcelProperty(value = "审核状态") + private String auditStatus; + + + private LocalDateTime createTime; + + private String createBy; + + /** + * 创建者姓名 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy") + private String createByName; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/XzdProjectVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/XzdProjectVo.java new file mode 100644 index 00000000..38fa8595 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/domain/vo/XzdProjectVo.java @@ -0,0 +1,44 @@ +package org.dromara.xzd.biddingManagement.domain.vo; + + +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class XzdProjectVo { + + /** + * 单据编号 + */ + @ExcelProperty(value = "单据编号") + private String documentNumber; + + /** + * 项目名称 + */ + @ExcelProperty(value = "项目名称") + private String projectName; + + /** + * 项目业主 + */ + @ExcelProperty(value = "项目业主") + private String projectBusinessOwner; + + /** + * 创建者 录入人 + */ + private Long createBy; + + + private LocalDateTime startTime; + + private LocalDateTime endTime; + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/mapper/XzdBidPreProjectMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/mapper/XzdBidPreProjectMapper.java new file mode 100644 index 00000000..86f44cb5 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/mapper/XzdBidPreProjectMapper.java @@ -0,0 +1,24 @@ +package org.dromara.xzd.biddingManagement.mapper; + +import org.apache.ibatis.annotations.Param; +import org.dromara.xzd.biddingManagement.domain.XzdBidPreProject; +import org.dromara.xzd.biddingManagement.domain.dto.QuerBiddingManagementDto; +import org.dromara.xzd.biddingManagement.domain.vo.QuerListXzdBidPreVo; +import org.dromara.xzd.biddingManagement.domain.vo.XzdBidPreProjectVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +import java.util.List; + +/** + * 标前立项Mapper接口 + * + * @author Lion Li + * @date 2025-10-10 + */ +public interface XzdBidPreProjectMapper extends BaseMapperPlus { + + + List queryPageListBy(@Param("bo") QuerBiddingManagementDto bo, @Param("pageSize") Integer pageSize); + + Integer queryPageListByNum(@Param("bo") QuerBiddingManagementDto bo, @Param("pageSize") Integer pageSize); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/mapper/XzdBqlxProjectInfoMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/mapper/XzdBqlxProjectInfoMapper.java new file mode 100644 index 00000000..63208d29 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/mapper/XzdBqlxProjectInfoMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.biddingManagement.mapper; + +import org.dromara.xzd.biddingManagement.domain.XzdBqlxProjectInfo; +import org.dromara.xzd.biddingManagement.domain.vo.XzdBqlxProjectInfoVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 标前立项Mapper接口 + * + * @author Lion Li + * @date 2025-10-10 + */ +public interface XzdBqlxProjectInfoMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/mapper/XzdProjectRiskAssessmentMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/mapper/XzdProjectRiskAssessmentMapper.java new file mode 100644 index 00000000..9d1abb47 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/mapper/XzdProjectRiskAssessmentMapper.java @@ -0,0 +1,16 @@ +package org.dromara.xzd.biddingManagement.mapper; + + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.xzd.biddingManagement.domain.XzdProjectRiskAssessment; +import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectRiskAssessmentVo; + +/** + * 项目风险评估签审意见Mapper接口 + * + * @author Lion Li + * @date 2025-10-10 + */ +public interface XzdProjectRiskAssessmentMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/IXzdBidPreProjectService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/IXzdBidPreProjectService.java new file mode 100644 index 00000000..0e5bd19b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/IXzdBidPreProjectService.java @@ -0,0 +1,74 @@ +package org.dromara.xzd.biddingManagement.service; + +import org.dromara.xzd.biddingManagement.domain.dto.BiddingManagementDto; +import org.dromara.xzd.biddingManagement.domain.dto.QuerBiddingManagementDto; +import org.dromara.xzd.biddingManagement.domain.vo.QuerListXzdBidPreVo; +import org.dromara.xzd.biddingManagement.domain.vo.QueryListXzdVo; +import org.dromara.xzd.biddingManagement.domain.vo.XzdBidPreProjectVo; +import org.dromara.xzd.biddingManagement.domain.bo.XzdBidPreProjectBo; +import org.dromara.xzd.biddingManagement.domain.XzdBidPreProject; +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-10-10 + */ +public interface IXzdBidPreProjectService extends IService{ + + /** + * 查询标前立项 + * + * @param id 主键 + * @return 标前立项 + */ + QuerListXzdBidPreVo queryById(Long id); + + /** + * 分页查询标前立项列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 标前立项分页列表 + */ + QueryListXzdVo queryPageList(QuerBiddingManagementDto bo, PageQuery pageQuery); + + /** + * 查询符合条件的标前立项列表 + * + * @param bo 查询条件 + * @return 标前立项列表 + */ + List queryList(XzdBidPreProjectBo bo); + + /** + * 新增标前立项 + * + * @param bo 标前立项 + * @return 是否新增成功 + */ + Boolean insertByBo(BiddingManagementDto bo); + + /** + * 修改标前立项 + * + * @param bo 标前立项 + * @return 是否修改成功 + */ + Boolean updateByBo(BiddingManagementDto bo); + + /** + * 校验并批量删除标前立项信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/IXzdBqlxProjectInfoService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/IXzdBqlxProjectInfoService.java new file mode 100644 index 00000000..ad6dbc4f --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/IXzdBqlxProjectInfoService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.biddingManagement.service; + +import org.dromara.xzd.biddingManagement.domain.vo.XzdBqlxProjectInfoVo; +import org.dromara.xzd.biddingManagement.domain.bo.XzdBqlxProjectInfoBo; +import org.dromara.xzd.biddingManagement.domain.XzdBqlxProjectInfo; +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-10-10 + */ +public interface IXzdBqlxProjectInfoService extends IService{ + + /** + * 查询标前立项 + * + * @param id 主键 + * @return 标前立项 + */ + XzdBqlxProjectInfoVo queryById(Long id); + + /** + * 分页查询标前立项列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 标前立项分页列表 + */ + TableDataInfo queryPageList(XzdBqlxProjectInfoBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的标前立项列表 + * + * @param bo 查询条件 + * @return 标前立项列表 + */ + List queryList(XzdBqlxProjectInfoBo bo); + + /** + * 新增标前立项 + * + * @param bo 标前立项 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdBqlxProjectInfoBo bo); + + /** + * 修改标前立项 + * + * @param bo 标前立项 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdBqlxProjectInfoBo bo); + + /** + * 校验并批量删除标前立项信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/IXzdProjectRiskAssessmentService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/IXzdProjectRiskAssessmentService.java new file mode 100644 index 00000000..8a9b88c3 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/IXzdProjectRiskAssessmentService.java @@ -0,0 +1,73 @@ +package org.dromara.xzd.biddingManagement.service; + + +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.xzd.biddingManagement.domain.XzdProjectRiskAssessment; +import org.dromara.xzd.biddingManagement.domain.bo.XzdProjectRiskAssessmentBo; +import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectRiskAssessmentVo; +import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectVo; + +import java.util.Collection; +import java.util.List; + +/** + * 项目风险评估签审意见Service接口 + * + * @author Lion Li + * @date 2025-10-10 + */ +public interface IXzdProjectRiskAssessmentService extends IService{ + + /** + * 查询项目风险评估签审意见 + * + * @param id 主键 + * @return 项目风险评估签审意见 + */ + XzdProjectRiskAssessmentVo queryById(Long id); + + /** + * 分页查询项目风险评估签审意见列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 项目风险评估签审意见分页列表 + */ + TableDataInfo queryPageList(XzdProjectVo bo, PageQuery pageQuery); + + /** + * 查询符合条件的项目风险评估签审意见列表 + * + * @param bo 查询条件 + * @return 项目风险评估签审意见列表 + */ + List queryList(XzdProjectRiskAssessmentBo bo); + + /** + * 新增项目风险评估签审意见 + * + * @param bo 项目风险评估签审意见 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdProjectRiskAssessmentBo bo); + + /** + * 修改项目风险评估签审意见 + * + * @param bo 项目风险评估签审意见 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdProjectRiskAssessmentBo bo); + + /** + * 校验并批量删除项目风险评估签审意见信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/impl/XzdBidPreProjectServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/impl/XzdBidPreProjectServiceImpl.java new file mode 100644 index 00000000..f6e5a2cc --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/impl/XzdBidPreProjectServiceImpl.java @@ -0,0 +1,217 @@ +package org.dromara.xzd.biddingManagement.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.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.xzd.biddingManagement.domain.XzdBqlxProjectInfo; +import org.dromara.xzd.biddingManagement.domain.bo.XzdBqlxProjectInfoBo; +import org.dromara.xzd.biddingManagement.domain.dto.BiddingManagementDto; +import org.dromara.xzd.biddingManagement.domain.dto.QuerBiddingManagementDto; +import org.dromara.xzd.biddingManagement.domain.vo.QuerListXzdBidPreVo; +import org.dromara.xzd.biddingManagement.domain.vo.QueryListXzdVo; +import org.dromara.xzd.biddingManagement.domain.vo.XzdBqlxProjectInfoVo; +import org.dromara.xzd.biddingManagement.mapper.XzdBqlxProjectInfoMapper; +import org.dromara.xzd.biddingManagement.service.IXzdBqlxProjectInfoService; +import org.dromara.xzd.utilS.AreaUtil; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.dromara.xzd.biddingManagement.domain.bo.XzdBidPreProjectBo; +import org.dromara.xzd.biddingManagement.domain.vo.XzdBidPreProjectVo; +import org.dromara.xzd.biddingManagement.domain.XzdBidPreProject; +import org.dromara.xzd.biddingManagement.mapper.XzdBidPreProjectMapper; +import org.dromara.xzd.biddingManagement.service.IXzdBidPreProjectService; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 标前立项Service业务层处理 + * + * @author Lion Li + * @date 2025-10-10 + */ +@RequiredArgsConstructor +@Service +public class XzdBidPreProjectServiceImpl extends ServiceImpl implements IXzdBidPreProjectService { + + private final XzdBidPreProjectMapper baseMapper; + + private final IXzdBqlxProjectInfoService iXzdBqlxProjectInfoService; + + + + private final AreaUtil areaUtil; + + + /** + * 查询标前立项 + * + * @param id 主键 + * @return 标前立项 + */ + @Override + public QuerListXzdBidPreVo queryById(Long id){ + QuerListXzdBidPreVo querListXzdBidPreVo = new QuerListXzdBidPreVo(); + XzdBidPreProjectVo xzdBidPreProjectVo = baseMapper.selectVoById(id); + XzdBqlxProjectInfo xzdBqlxProjectInfo = iXzdBqlxProjectInfoService.getBaseMapper().selectOne(new LambdaQueryWrapper<>(XzdBqlxProjectInfo.class).eq(XzdBqlxProjectInfo::getBidPreProjectId, id)); + XzdBqlxProjectInfoVo res = new XzdBqlxProjectInfoVo(); + BeanUtils.copyProperties(xzdBqlxProjectInfo, res); + + querListXzdBidPreVo.setXzdBqlxProjectInfoVo(res); + querListXzdBidPreVo.setXzdBidPreProjectVo(xzdBidPreProjectVo); + + return querListXzdBidPreVo; + } + + /** + * 分页查询标前立项列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 标前立项分页列表 + */ + @Override + public QueryListXzdVo queryPageList(QuerBiddingManagementDto bo, PageQuery pageQuery) { + + QueryListXzdVo queryListXzdVo = new QueryListXzdVo(); + + if (pageQuery.getPageNum() != null && pageQuery.getPageSize() != null){ + bo.setNum((pageQuery.getPageNum() - 1 ) * pageQuery.getPageSize() ); + } + + List list = baseMapper.queryPageListBy(bo,pageQuery.getPageSize()); + Integer res = baseMapper.queryPageListByNum(bo,pageQuery.getPageSize()); + + queryListXzdVo.setList(list); + + queryListXzdVo.setTotal(res); + + return queryListXzdVo; + } + + /** + * 查询符合条件的标前立项列表 + * + * @param bo 查询条件 + * @return 标前立项列表 + */ + @Override + public List queryList(XzdBidPreProjectBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdBidPreProjectBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdBidPreProject::getId); + lqw.eq(StringUtils.isNotBlank(bo.getProjectNumber()), XzdBidPreProject::getProjectNumber, bo.getProjectNumber()); + lqw.like(StringUtils.isNotBlank(bo.getProjectName()), XzdBidPreProject::getProjectName, bo.getProjectName()); + lqw.eq(StringUtils.isNotBlank(bo.getCountry()), XzdBidPreProject::getCountry, bo.getCountry()); + lqw.eq(StringUtils.isNotBlank(bo.getProvince()), XzdBidPreProject::getProvince, bo.getProvince()); + lqw.eq(StringUtils.isNotBlank(bo.getCity()), XzdBidPreProject::getCity, bo.getCity()); + lqw.eq(StringUtils.isNotBlank(bo.getDistrict()), XzdBidPreProject::getDistrict, bo.getDistrict()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectLocation()), XzdBidPreProject::getProjectLocation, bo.getProjectLocation()); + lqw.eq(StringUtils.isNotBlank(bo.getCapitalSource()), XzdBidPreProject::getCapitalSource, bo.getCapitalSource()); + lqw.eq(StringUtils.isNotBlank(bo.getContractingMethod()), XzdBidPreProject::getContractingMethod, bo.getContractingMethod()); + lqw.eq(StringUtils.isNotBlank(bo.getOperationMode()), XzdBidPreProject::getOperationMode, bo.getOperationMode()); + lqw.eq(bo.getProjectTypeId() != null, XzdBidPreProject::getProjectTypeId, bo.getProjectTypeId()); + lqw.eq(StringUtils.isNotBlank(bo.getBiddingMethod()), XzdBidPreProject::getBiddingMethod, bo.getBiddingMethod()); + lqw.eq(StringUtils.isNotBlank(bo.getLiaisonMethod()), XzdBidPreProject::getLiaisonMethod, bo.getLiaisonMethod()); + lqw.eq(StringUtils.isNotBlank(bo.getInvestmentUnit()), XzdBidPreProject::getInvestmentUnit, bo.getInvestmentUnit()); + lqw.eq(bo.getProjectCost() != null, XzdBidPreProject::getProjectCost, bo.getProjectCost()); + lqw.eq(bo.getInformationCost() != null, XzdBidPreProject::getInformationCost, bo.getInformationCost()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdBidPreProject::getFileId, bo.getFileId()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdBidPreProject::getAuditStatus, bo.getAuditStatus()); + return lqw; + } + + /** + * 新增标前立项 + * + * @param bo 标前立项 + * @return 是否新增成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean insertByBo(BiddingManagementDto bo) { + + try { + Long l = baseMapper.selectCount(new LambdaQueryWrapper().gt(XzdBidPreProject::getCreateTime, LocalDateTime.now().minusDays(1))); + String s = areaUtil.generateDateBasedNumber(); + +// 标前立项 + XzdBidPreProjectBo xzdBidPreProjectBo = bo.getXzdBidPreProjectBo(); + XzdBidPreProject xzdBidPreProject = new XzdBidPreProject(); + if (xzdBidPreProjectBo != null) { + BeanUtil.copyProperties(xzdBidPreProjectBo, xzdBidPreProject); + xzdBidPreProject.setProjectNumber(s+"-"+(l+1)); + baseMapper.insert(xzdBidPreProject); + } + +//标前立项-项目信息 + XzdBqlxProjectInfoBo xzdBqlxProjectInfoBo = bo.getXzdBqlxProjectInfoBo(); + xzdBqlxProjectInfoBo.setBidPreProjectId(xzdBidPreProject.getId()); + + iXzdBqlxProjectInfoService.insertByBo(xzdBqlxProjectInfoBo); + }catch (Exception e) { + log.error("新增标前立项失败", e); + return false; + } + + return true; + } + + /** + * 修改标前立项 + * + * @param bo 标前立项 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(BiddingManagementDto bo) { + + +// XzdBidPreProjectBo xzdBidPreProjectBo = bo.getXzdBidPreProjectBo(); +// +// baseMapper.updateById(xzdBidPreProjectBo); +// +// XzdBqlxProjectInfoBo xzdBqlxProjectInfoBo = bo.getXzdBqlxProjectInfoBo(); +// +// +// validEntityBeforeSave(update); + return false; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdBidPreProject entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除标前立项信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/impl/XzdBqlxProjectInfoServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/impl/XzdBqlxProjectInfoServiceImpl.java new file mode 100644 index 00000000..9279d9f5 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/impl/XzdBqlxProjectInfoServiceImpl.java @@ -0,0 +1,161 @@ +package org.dromara.xzd.biddingManagement.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.xzd.biddingManagement.domain.bo.XzdBqlxProjectInfoBo; +import org.dromara.xzd.biddingManagement.domain.vo.XzdBqlxProjectInfoVo; +import org.dromara.xzd.biddingManagement.domain.XzdBqlxProjectInfo; +import org.dromara.xzd.biddingManagement.mapper.XzdBqlxProjectInfoMapper; +import org.dromara.xzd.biddingManagement.service.IXzdBqlxProjectInfoService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 标前立项Service业务层处理 + * + * @author Lion Li + * @date 2025-10-10 + */ +@RequiredArgsConstructor +@Service +public class XzdBqlxProjectInfoServiceImpl extends ServiceImpl implements IXzdBqlxProjectInfoService { + + private final XzdBqlxProjectInfoMapper baseMapper; + + /** + * 查询标前立项 + * + * @param id 主键 + * @return 标前立项 + */ + @Override + public XzdBqlxProjectInfoVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询标前立项列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 标前立项分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdBqlxProjectInfoBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的标前立项列表 + * + * @param bo 查询条件 + * @return 标前立项列表 + */ + @Override + public List queryList(XzdBqlxProjectInfoBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdBqlxProjectInfoBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdBqlxProjectInfo::getId); + lqw.eq(bo.getBidPreProjectId() != null, XzdBqlxProjectInfo::getBidPreProjectId, bo.getBidPreProjectId()); + lqw.eq(bo.getExpectedStartDate() != null, XzdBqlxProjectInfo::getExpectedStartDate, bo.getExpectedStartDate()); + lqw.eq(StringUtils.isNotBlank(bo.getQualificationRequirement()), XzdBqlxProjectInfo::getQualificationRequirement, bo.getQualificationRequirement()); + lqw.eq(bo.getBidStartDate() != null, XzdBqlxProjectInfo::getBidStartDate, bo.getBidStartDate()); + lqw.eq(bo.getBidEndDate() != null, XzdBqlxProjectInfo::getBidEndDate, bo.getBidEndDate()); + lqw.eq(bo.getSubmissionDeadline() != null, XzdBqlxProjectInfo::getSubmissionDeadline, bo.getSubmissionDeadline()); + lqw.eq(StringUtils.isNotBlank(bo.getDesignDescription()), XzdBqlxProjectInfo::getDesignDescription, bo.getDesignDescription()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectStatus()), XzdBqlxProjectInfo::getProjectStatus, bo.getProjectStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getBiddingAnnouncementAddress()), XzdBqlxProjectInfo::getBiddingAnnouncementAddress, bo.getBiddingAnnouncementAddress()); + lqw.eq(StringUtils.isNotBlank(bo.getQualityRequirement()), XzdBqlxProjectInfo::getQualityRequirement, bo.getQualityRequirement()); + lqw.eq(bo.getDurationDays() != null, XzdBqlxProjectInfo::getDurationDays, bo.getDurationDays()); + lqw.eq(StringUtils.isNotBlank(bo.getLowestQualificationRequirement()), XzdBqlxProjectInfo::getLowestQualificationRequirement, bo.getLowestQualificationRequirement()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectManagerRequirement()), XzdBqlxProjectInfo::getProjectManagerRequirement, bo.getProjectManagerRequirement()); + lqw.eq(StringUtils.isNotBlank(bo.getPerformanceRequirement()), XzdBqlxProjectInfo::getPerformanceRequirement, bo.getPerformanceRequirement()); + lqw.eq(bo.getStartDate() != null, XzdBqlxProjectInfo::getStartDate, bo.getStartDate()); + lqw.eq(StringUtils.isNotBlank(bo.getEvaluationMethod()), XzdBqlxProjectInfo::getEvaluationMethod, bo.getEvaluationMethod()); + lqw.eq(StringUtils.isNotBlank(bo.getBiddingDepositForm()), XzdBqlxProjectInfo::getBiddingDepositForm, bo.getBiddingDepositForm()); + lqw.eq(bo.getBiddingDeposit() != null, XzdBqlxProjectInfo::getBiddingDeposit, bo.getBiddingDeposit()); + lqw.eq(StringUtils.isNotBlank(bo.getConstructionUnit()), XzdBqlxProjectInfo::getConstructionUnit, bo.getConstructionUnit()); + lqw.eq(StringUtils.isNotBlank(bo.getConstructionPerson()), XzdBqlxProjectInfo::getConstructionPerson, bo.getConstructionPerson()); + lqw.eq(StringUtils.isNotBlank(bo.getConstructionMethod()), XzdBqlxProjectInfo::getConstructionMethod, bo.getConstructionMethod()); + lqw.eq(StringUtils.isNotBlank(bo.getBiddingUnit()), XzdBqlxProjectInfo::getBiddingUnit, bo.getBiddingUnit()); + lqw.eq(StringUtils.isNotBlank(bo.getBiddingPerson()), XzdBqlxProjectInfo::getBiddingPerson, bo.getBiddingPerson()); + lqw.eq(StringUtils.isNotBlank(bo.getBiddingMethod()), XzdBqlxProjectInfo::getBiddingMethod, bo.getBiddingMethod()); + lqw.eq(bo.getCostPrice() != null, XzdBqlxProjectInfo::getCostPrice, bo.getCostPrice()); + lqw.eq(bo.getBiddingPriceControl() != null, XzdBqlxProjectInfo::getBiddingPriceControl, bo.getBiddingPriceControl()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectNumber()), XzdBqlxProjectInfo::getProjectNumber, bo.getProjectNumber()); + lqw.eq(StringUtils.isNotBlank(bo.getDefaultFinance()), XzdBqlxProjectInfo::getDefaultFinance, bo.getDefaultFinance()); + lqw.eq(StringUtils.isNotBlank(bo.getInvolveFinance()), XzdBqlxProjectInfo::getInvolveFinance, bo.getInvolveFinance()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdBqlxProjectInfo::getFileId, bo.getFileId()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdBqlxProjectInfo::getAuditStatus, bo.getAuditStatus()); + return lqw; + } + + /** + * 新增标前立项 + * + * @param bo 标前立项 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdBqlxProjectInfoBo bo) { + XzdBqlxProjectInfo add = MapstructUtils.convert(bo, XzdBqlxProjectInfo.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改标前立项 + * + * @param bo 标前立项 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdBqlxProjectInfoBo bo) { + XzdBqlxProjectInfo update = MapstructUtils.convert(bo, XzdBqlxProjectInfo.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdBqlxProjectInfo entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除标前立项信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/impl/XzdProjectRiskAssessmentServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/impl/XzdProjectRiskAssessmentServiceImpl.java new file mode 100644 index 00000000..200e53be --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/service/impl/XzdProjectRiskAssessmentServiceImpl.java @@ -0,0 +1,176 @@ +package org.dromara.xzd.biddingManagement.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.dromara.xzd.biddingManagement.domain.XzdProjectRiskAssessment; +import org.dromara.xzd.biddingManagement.domain.bo.XzdProjectRiskAssessmentBo; +import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectRiskAssessmentVo; +import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectVo; +import org.dromara.xzd.biddingManagement.mapper.XzdProjectRiskAssessmentMapper; +import org.dromara.xzd.biddingManagement.service.IXzdProjectRiskAssessmentService; +import org.dromara.xzd.utilS.AreaUtil; +import org.springframework.stereotype.Service; + + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 项目风险评估签审意见Service业务层处理 + * + * @author Lion Li + * @date 2025-10-10 + */ +@RequiredArgsConstructor +@Service +public class XzdProjectRiskAssessmentServiceImpl extends ServiceImpl implements IXzdProjectRiskAssessmentService { + + private final XzdProjectRiskAssessmentMapper baseMapper; + + private final AreaUtil areaUtil; + + /** + * 查询项目风险评估签审意见 + * + * @param id 主键 + * @return 项目风险评估签审意见 + */ + @Override + public XzdProjectRiskAssessmentVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询项目风险评估签审意见列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 项目风险评估签审意见分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdProjectVo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper1(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的项目风险评估签审意见列表 + * + * @param bo 查询条件 + * @return 项目风险评估签审意见列表 + */ + @Override + public List queryList(XzdProjectRiskAssessmentBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdProjectRiskAssessmentBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdProjectRiskAssessment::getId); + lqw.eq(StringUtils.isNotBlank(bo.getDocumentNumber()), XzdProjectRiskAssessment::getDocumentNumber, bo.getDocumentNumber()); + lqw.like(StringUtils.isNotBlank(bo.getProjectName()), XzdProjectRiskAssessment::getProjectName, bo.getProjectName()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectBusinessOwner()), XzdProjectRiskAssessment::getProjectBusinessOwner, bo.getProjectBusinessOwner()); + lqw.eq(StringUtils.isNotBlank(bo.getJointBodyMembers()), XzdProjectRiskAssessment::getJointBodyMembers, bo.getJointBodyMembers()); + lqw.eq(bo.getEstimatedContractAmount() != null, XzdProjectRiskAssessment::getEstimatedContractAmount, bo.getEstimatedContractAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getUnitPriceIndex()), XzdProjectRiskAssessment::getUnitPriceIndex, bo.getUnitPriceIndex()); + lqw.eq(StringUtils.isNotBlank(bo.getEngineeringRisk()), XzdProjectRiskAssessment::getEngineeringRisk, bo.getEngineeringRisk()); + lqw.eq(StringUtils.isNotBlank(bo.getTechnicalRisk()), XzdProjectRiskAssessment::getTechnicalRisk, bo.getTechnicalRisk()); + lqw.eq(StringUtils.isNotBlank(bo.getEconomicRisk()), XzdProjectRiskAssessment::getEconomicRisk, bo.getEconomicRisk()); + lqw.eq(StringUtils.isNotBlank(bo.getContractRisk()), XzdProjectRiskAssessment::getContractRisk, bo.getContractRisk()); + lqw.eq(StringUtils.isNotBlank(bo.getPersonnelRisk()), XzdProjectRiskAssessment::getPersonnelRisk, bo.getPersonnelRisk()); + lqw.eq(StringUtils.isNotBlank(bo.getConstructionRisk()), XzdProjectRiskAssessment::getConstructionRisk, bo.getConstructionRisk()); + lqw.eq(StringUtils.isNotBlank(bo.getManagementRisk()), XzdProjectRiskAssessment::getManagementRisk, bo.getManagementRisk()); + lqw.eq(StringUtils.isNotBlank(bo.getSubcontractRisk()), XzdProjectRiskAssessment::getSubcontractRisk, bo.getSubcontractRisk()); + lqw.eq(StringUtils.isNotBlank(bo.getOtherRisks()), XzdProjectRiskAssessment::getOtherRisks, bo.getOtherRisks()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdProjectRiskAssessment::getFileId, bo.getFileId()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdProjectRiskAssessment::getAuditStatus, bo.getAuditStatus()); + return lqw; + } + + + + + + private LambdaQueryWrapper buildQueryWrapper1(XzdProjectVo bo) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdProjectRiskAssessment::getId); + lqw.eq(StringUtils.isNotBlank(bo.getDocumentNumber()), XzdProjectRiskAssessment::getDocumentNumber, bo.getDocumentNumber()); + lqw.like(StringUtils.isNotBlank(bo.getProjectName()), XzdProjectRiskAssessment::getProjectName, bo.getProjectName()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectBusinessOwner()), XzdProjectRiskAssessment::getProjectBusinessOwner, bo.getProjectBusinessOwner()); + lqw.eq(StringUtils.isNotBlank(bo.getCreateBy().toString()), XzdProjectRiskAssessment::getCreateBy, bo.getCreateBy()); + lqw.ge(StringUtils.isNotBlank(bo.getStartTime().toString()), XzdProjectRiskAssessment::getCreateTime, bo.getStartTime()); + lqw.le(StringUtils.isNotBlank(bo.getEndTime().toString()), XzdProjectRiskAssessment::getCreateTime, bo.getEndTime()); + + return lqw; + } + + /** + * 新增项目风险评估签审意见 + * + * @param bo 项目风险评估签审意见 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdProjectRiskAssessmentBo bo) { + XzdProjectRiskAssessment add = MapstructUtils.convert(bo, XzdProjectRiskAssessment.class); + validEntityBeforeSave(add); + if(add != null){ + String s = areaUtil.generateDateBasedNumber(); + Long l = baseMapper.selectCount(new LambdaQueryWrapper().gt(XzdProjectRiskAssessment::getCreateTime, LocalDateTime.now().minusDays(1))); + add.setDocumentNumber(s+"-"+(l+1)); + } + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改项目风险评估签审意见 + * + * @param bo 项目风险评估签审意见 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdProjectRiskAssessmentBo bo) { + XzdProjectRiskAssessment update = MapstructUtils.convert(bo, XzdProjectRiskAssessment.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdProjectRiskAssessment entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除项目风险评估签审意见信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdCorrespondentList.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdCorrespondentList.java index 256da475..db9b2ca2 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdCorrespondentList.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdCorrespondentList.java @@ -5,17 +5,14 @@ import cn.dev33.satoken.annotation.SaCheckPermission; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.mybatis.core.page.PageQuery; -import org.dromara.xzd.domain.XzdCustomertype; import org.dromara.xzd.domain.dto.AddCorrespondentDto; +import org.dromara.xzd.domain.dto.QuerCorrespondentDto; import org.dromara.xzd.domain.dto.XzdClienteleListDto; import org.dromara.xzd.domain.vo.XzdClienteleListSumVo; -import org.dromara.xzd.domain.vo.XzdClienteleListVo; import org.dromara.xzd.domain.vo.XzdCustomertypeVo; import org.dromara.xzd.domain.vo.XzdPoiAreaVo; import org.dromara.xzd.service.IXzdCorrespondentList; -import org.dromara.xzd.service.IXzdCustomertypeInfoService; import org.dromara.xzd.service.IXzdCustomertypeService; -import org.dromara.xzd.service.IXzdPoiAreaService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -38,7 +35,6 @@ public class XzdCorrespondentList { /** * 查询区域列表 */ -// @SaCheckPermission("xzd:poiArea:list") @GetMapping("/list") public R list() { return iXzdCorrespondentList.queryPageList(); @@ -48,19 +44,29 @@ public class XzdCorrespondentList { /** * 客户信息添加 */ - @SaCheckPermission("xzd:poiArea:add") + @SaCheckPermission("xzd:customertypeInfo:add") @PostMapping("/addCorrespondent") public R addCorrespondent(@RequestBody AddCorrespondentDto dto) { return iXzdCorrespondentList.addCorrespondent(dto); } + /** + * 客户信息修改 + */ + @SaCheckPermission("xzd:customertypeInfo:edit") + @PutMapping("/addCorrespondent") + public R putCorrespondent(@RequestBody AddCorrespondentDto dto) { + return iXzdCorrespondentList.putCorrespondent(dto); + } + + /** * 客户信息删除 */ - @SaCheckPermission("xzd:poiArea:del") - @PostMapping("/delCorrespondent") - public R delCorrespondent(@RequestBody List dto) { + @SaCheckPermission("xzd:customertypeInfo:remove") + @DeleteMapping("/delCorrespondent/{dto}") + public R delCorrespondent(@PathVariable Long[] dto) { return iXzdCorrespondentList.delCorrespondent(dto); } @@ -69,9 +75,9 @@ public class XzdCorrespondentList { /** * 客户信息列表 */ - @SaCheckPermission("xzd:poiArea:list") - @PostMapping("/queryCustomertype") - public R queryCustomertype(@RequestBody XzdClienteleListDto dto, PageQuery pageQuery) { + @SaCheckPermission("xzd:customertypeInfo:query") + @GetMapping("/queryCustomertype") + public R queryCustomertype( XzdClienteleListDto dto, PageQuery pageQuery) { return iXzdCorrespondentList.queryCustomertype(dto, pageQuery); } @@ -79,21 +85,19 @@ public class XzdCorrespondentList { /** * 客户类型列表 */ - @SaCheckPermission("xzd:poiArea:list") + @SaCheckPermission("xzd:customertypeInfo:query") @PostMapping("/queryCustomertypeList") public R> queryCustomertypeList() { return iXzdCustomertypeService.queryCustomertypeList(); } - - - - - - - - - + /** + * 客户详情 + */ + @GetMapping("/getCustomerByid/{id}") + public R getCustomerByid(@PathVariable Long id) { + return iXzdCorrespondentList.getCustomerByid(id); + } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdProjectTypeController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdProjectTypeController.java new file mode 100644 index 00000000..aefdc3f5 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdProjectTypeController.java @@ -0,0 +1,99 @@ +package org.dromara.xzd.controller; + +import java.util.List; + +import cn.hutool.core.lang.tree.Tree; +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import org.dromara.xzd.domain.bo.XzdProjectTypeBo; +import org.dromara.xzd.domain.vo.XzdProjectTypeVo; +import org.dromara.xzd.service.IXzdProjectTypeService; +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.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; + + +/** + * 项目类型 + * + * @author Lion Li + * @date 2025-10-09 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/projectType") +public class XzdProjectTypeController extends BaseController { + + private final IXzdProjectTypeService xzdProjectTypeService; + + /** + * 查询项目类型列表 + */ + @GetMapping("/list") + public R>> list(XzdProjectTypeBo bo) { + List list = xzdProjectTypeService.queryList(bo); + return R.ok(xzdProjectTypeService.buildMenuTreeSelect(list)); + } + + /** + * 导出项目类型列表 + */ + @Log(title = "项目类型", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdProjectTypeBo bo, HttpServletResponse response) { + List list = xzdProjectTypeService.queryList(bo); + ExcelUtil.exportExcel(list, "项目类型", XzdProjectTypeVo.class, response); + } + + /** + * 获取项目类型详细信息 + * + * @param id 主键 + */ + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdProjectTypeService.queryById(id)); + } + + /** + * 新增项目类型 + */ + @Log(title = "项目类型", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdProjectTypeBo bo) { + return toAjax(xzdProjectTypeService.insertByBo(bo)); + } + + /** + * 修改项目类型 + */ + @Log(title = "项目类型", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdProjectTypeBo bo) { + return toAjax(xzdProjectTypeService.updateByBo(bo)); + } + + /** + * 删除项目类型 + * + * @param ids 主键串 + */ + @Log(title = "项目类型", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdProjectTypeService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdCustomertype.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdCustomertype.java index df8e84c4..33504b35 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdCustomertype.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdCustomertype.java @@ -4,11 +4,8 @@ import org.dromara.common.mybatis.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; -import org.dromara.xzd.domain.vo.XzdCustomertypeInfoVo; -import org.dromara.xzd.domain.vo.XzdCustomertypeVo; import java.io.Serial; -import java.util.List; /** * 客户|供应商类型(公共)对象 xzd_customertype diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdPoiArea.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdPoiArea.java index a54a2260..f83ed66b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdPoiArea.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdPoiArea.java @@ -14,9 +14,8 @@ import java.io.Serial; * @date 2025-09-30 */ @Data -@EqualsAndHashCode(callSuper = true) @TableName("xzd_poi_area") -public class XzdPoiArea extends BaseEntity { +public class XzdPoiArea { @Serial private static final long serialVersionUID = 1L; diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdProjectType.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdProjectType.java new file mode 100644 index 00000000..921e15c3 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdProjectType.java @@ -0,0 +1,54 @@ +package org.dromara.xzd.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 java.io.Serial; + +/** + * 项目类型对象 xzd_project_type + * + * @author Lion Li + * @date 2025-10-09 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_project_type") +public class XzdProjectType extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 父节点ID + */ + private Long parentId; + + /** + * 项目类型名称 + */ + private String typeName; + + /** + * 排序 + */ + private Long sortOrder; + + /** + * 备注 + */ + private String remark; + + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSettlementInfo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSettlementInfo.java index 565fac92..149096cc 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSettlementInfo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSettlementInfo.java @@ -1,5 +1,6 @@ package org.dromara.xzd.domain; +import com.alibaba.excel.annotation.ExcelProperty; import org.dromara.common.mybatis.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; @@ -42,6 +43,11 @@ public class XzdSettlementInfo extends BaseEntity { */ private String settlementUnit; + /** + * 分管部门 + */ + private String branchedPassage; + /** * 结算方式 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdCertificateInfoBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdCertificateInfoBo.java index e0561e1a..95d48535 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdCertificateInfoBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdCertificateInfoBo.java @@ -8,6 +8,9 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; + +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; @@ -50,12 +53,12 @@ public class XzdCertificateInfoBo extends BaseEntity { /** * 生效日期 */ - private Date effectiveDate; + private LocalDateTime effectiveDate; /** * 截止日期 */ - private Date expirationDate; + private LocalDateTime expirationDate; /** * 停用标志(0:未停用,1:已停用) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdCustomerDetailBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdCustomerDetailBo.java index 13c80041..5a5162c3 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdCustomerDetailBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdCustomerDetailBo.java @@ -8,6 +8,9 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; + +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; @@ -75,12 +78,12 @@ public class XzdCustomerDetailBo extends BaseEntity { /** * 冻结开始时间 */ - private Date freezeStartTime; + private LocalDateTime freezeStartTime; /** * 冻结结束时间 */ - private Date freezeEndTime; + private LocalDateTime freezeEndTime; /** * 经销商类型 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdCustomerinformationBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdCustomerinformationBo.java index b434ef3a..41c0ce70 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdCustomerinformationBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdCustomerinformationBo.java @@ -8,6 +8,9 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; + +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; @@ -123,7 +126,7 @@ public class XzdCustomerinformationBo extends BaseEntity { /** * 工商变更时间 */ - private Date industrialCommercialChangeTime; + private LocalDateTime industrialCommercialChangeTime; /** * 备注 @@ -163,7 +166,7 @@ public class XzdCustomerinformationBo extends BaseEntity { /** * 单位成立日期 */ - private Date establishmentDate; + private LocalDateTime establishmentDate; /** * 纳税身份类型 @@ -208,7 +211,7 @@ public class XzdCustomerinformationBo extends BaseEntity { /** * 注册时间 */ - private Date registrationTime; + private LocalDateTime registrationTime; /** * 营业范围 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdProjectInfoBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdProjectInfoBo.java index 4bc720a3..f65af40e 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdProjectInfoBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdProjectInfoBo.java @@ -8,6 +8,9 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; + +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; @@ -75,7 +78,7 @@ public class XzdProjectInfoBo extends BaseEntity { /** * 项目日期 */ - private Date projectDate; + private LocalDateTime projectDate; /** * 管理组织 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdProjectTypeBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdProjectTypeBo.java new file mode 100644 index 00000000..c461633f --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdProjectTypeBo.java @@ -0,0 +1,55 @@ +package org.dromara.xzd.domain.bo; + +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 org.dromara.xzd.domain.XzdProjectType; + +import java.util.Date; + +/** + * 项目类型业务对象 xzd_project_type + * + * @author Lion Li + * @date 2025-10-09 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdProjectType.class, reverseConvertGenerate = false) +public class XzdProjectTypeBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 父节点ID + */ + @NotNull(message = "父节点ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long parentId; + + /** + * 项目类型名称 + */ + @NotBlank(message = "项目类型名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String typeName; + + /** + * 排序 + */ + private Long sortOrder; + + /** + * 备注 + */ + private String remark; + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdSettlementInfoBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdSettlementInfoBo.java index 131b39f2..59cf404b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdSettlementInfoBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdSettlementInfoBo.java @@ -75,6 +75,11 @@ public class XzdSettlementInfoBo extends BaseEntity { */ private String accountName; + /** + * 分管部门 + */ + private String branchedPassage; + /** * 开户行省 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/dto/AddCorrespondentDto.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/dto/AddCorrespondentDto.java index c6fbfb96..6af69c95 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/dto/AddCorrespondentDto.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/dto/AddCorrespondentDto.java @@ -37,10 +37,10 @@ public class AddCorrespondentDto { private XzdBusinessInfoBo xzdBusinessInfo; // 项目信息 - private XzdProjectInfoBo xzdProjectInfo; + private List xzdProjectInfo; // 合同信息 - private XzdContractInfoBo xzdContractInfo; + private List xzdContractInfo; // 客户类型信息 private List xzdCustomertypeInfo; diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/dto/QuerCorrespondentDto.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/dto/QuerCorrespondentDto.java new file mode 100644 index 00000000..6fdbfe18 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/dto/QuerCorrespondentDto.java @@ -0,0 +1,50 @@ +package org.dromara.xzd.domain.dto; + + +import lombok.Data; +import org.dromara.xzd.domain.*; +import org.dromara.xzd.domain.bo.*; +import org.dromara.xzd.domain.vo.XzdCustomerDetailVo; +import org.dromara.xzd.domain.vo.XzdCustomerinformationVo; + +import java.util.List; + +@Data +public class QuerCorrespondentDto { + + // 客户信息 + private XzdCustomerinformationVo xzdCustomerinformation; + + // tab客户信息 + private XzdCustomerDetail xzdCustomerDetail; + + // 地址信息 + private List xzdAddressInfo; + + // 联系人信息 + private List xzdContact; + + // 证件信息 + private List xzdCertificateInfo; + + // 资质信息 + private List xzdQualificationInfo; + + // 结算信息 + private XzdSettlementInfo xzdSettlementInfo; + + // 业务信息 + private XzdBusinessInfo xzdBusinessInfo; + + // 项目信息 + private List xzdProjectInfo; + + // 合同信息 + private List xzdContractInfo; + + // 客户类型信息 + private List xzdCustomertypeInfo; + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/dto/XzdClienteleListDto.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/dto/XzdClienteleListDto.java index f1f2d4e0..d0ef47e5 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/dto/XzdClienteleListDto.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/dto/XzdClienteleListDto.java @@ -16,6 +16,12 @@ public class XzdClienteleListDto { */ private String unitCode; + /** + * 区域ID + */ + private Long poiAreaId; + + /** * 单位名称 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdClienteleListVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdClienteleListVo.java index 9d8e316a..b4e6b865 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdClienteleListVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdClienteleListVo.java @@ -15,15 +15,22 @@ import java.util.Date; public class XzdClienteleListVo { -// 未找到字段 审核人,冻结人,工作流标志,是否加入黑名单,变更状态 +// 未找到字段 审核人,冻结人,工作流标志,变更状态 // XzdCustomerinformationBo + +// 客户id + + private Long customerId; + + /** * 单位编号 */ private String unitCode; + /** * 单位名称 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdCustomertypeVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdCustomertypeVo.java index 3ace3bcb..a75428cf 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdCustomertypeVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdCustomertypeVo.java @@ -11,7 +11,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; import java.util.Date; -import java.util.List; + /** @@ -65,9 +65,5 @@ public class XzdCustomertypeVo implements Serializable { @ExcelProperty(value = "客户类型") private String customerType; - /** - * 子节点 - */ - List children; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdProjectTypeVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdProjectTypeVo.java new file mode 100644 index 00000000..41aba17f --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdProjectTypeVo.java @@ -0,0 +1,67 @@ +package org.dromara.xzd.domain.vo; + +import java.util.ArrayList; +import java.util.Date; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.xzd.domain.XzdProjectType; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + + +/** + * 项目类型视图对象 xzd_project_type + * + * @author Lion Li + * @date 2025-10-09 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdProjectType.class) +public class XzdProjectTypeVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 父节点ID + */ + @ExcelProperty(value = "父节点ID") + private Long parentId; + + /** + * 项目类型名称 + */ + @ExcelProperty(value = "项目类型名称") + private String typeName; + + /** + * 排序 + */ + @ExcelProperty(value = "排序") + private Long sortOrder; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + + private List children = new ArrayList<>();; + + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdSettlementInfoVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdSettlementInfoVo.java index 3dc5d41d..a8a65c9b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdSettlementInfoVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdSettlementInfoVo.java @@ -58,6 +58,13 @@ public class XzdSettlementInfoVo implements Serializable { @ExcelProperty(value = "结算方式") private String settlementMethod; + + /** + * 分管部门 + */ + @ExcelProperty(value = "分管部门") + private String branchedPassage; + /** * 结算币种 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/enums/ZxdEnum.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/enums/ZxdEnum.java index 56b43cbe..69ed3201 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/enums/ZxdEnum.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/enums/ZxdEnum.java @@ -3,8 +3,8 @@ package org.dromara.xzd.enums; public enum ZxdEnum { - TYPE_CORRESPONDENT("类型","1"), - TYPE_SUPPLIER("类型","2"); + TYPE_CORRESPONDENT("客户","1"), + TYPE_SUPPLIER("供应商","2"); private final String TypeName; diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdProjectTypeMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdProjectTypeMapper.java new file mode 100644 index 00000000..fe64b74c --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdProjectTypeMapper.java @@ -0,0 +1,16 @@ +package org.dromara.xzd.mapper; + + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.xzd.domain.XzdProjectType; +import org.dromara.xzd.domain.vo.XzdProjectTypeVo; + +/** + * 项目类型Mapper接口 + * + * @author Lion Li + * @date 2025-10-09 + */ +public interface XzdProjectTypeMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdCorrespondentList.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdCorrespondentList.java index ecaf1a4f..50ddb835 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdCorrespondentList.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdCorrespondentList.java @@ -3,6 +3,7 @@ package org.dromara.xzd.service; import org.dromara.common.core.domain.R; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.xzd.domain.dto.AddCorrespondentDto; +import org.dromara.xzd.domain.dto.QuerCorrespondentDto; import org.dromara.xzd.domain.dto.XzdClienteleListDto; import org.dromara.xzd.domain.vo.XzdClienteleListSumVo; import org.dromara.xzd.domain.vo.XzdClienteleListVo; @@ -16,7 +17,11 @@ public interface IXzdCorrespondentList { R addCorrespondent(AddCorrespondentDto dto); - R delCorrespondent(List dto); + R delCorrespondent(Long[] dto); R queryCustomertype(XzdClienteleListDto dto, PageQuery pageQuery); + + R putCorrespondent(AddCorrespondentDto dto); + + R getCustomerByid(Long id); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdCustomertypeService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdCustomertypeService.java index f6b59eda..dc7cfa89 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdCustomertypeService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdCustomertypeService.java @@ -73,4 +73,6 @@ public interface IXzdCustomertypeService extends IService{ R> queryCustomertype(); R> queryCustomertypeList(); + + R getCustomerByid(Long id); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdProjectTypeService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdProjectTypeService.java new file mode 100644 index 00000000..796b5e6b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdProjectTypeService.java @@ -0,0 +1,65 @@ +package org.dromara.xzd.service; + + + +import cn.hutool.core.lang.tree.Tree; +import com.baomidou.mybatisplus.extension.service.IService; +import org.dromara.xzd.domain.XzdProjectType; +import org.dromara.xzd.domain.bo.XzdProjectTypeBo; +import org.dromara.xzd.domain.vo.XzdProjectTypeVo; + +import java.util.Collection; +import java.util.List; + +/** + * 项目类型Service接口 + * + * @author Lion Li + * @date 2025-10-09 + */ +public interface IXzdProjectTypeService extends IService{ + + /** + * 查询项目类型 + * + * @param id 主键 + * @return 项目类型 + */ + XzdProjectTypeVo queryById(Long id); + + + /** + * 查询符合条件的项目类型列表 + * + * @param bo 查询条件 + * @return 项目类型列表 + */ + List queryList(XzdProjectTypeBo bo); + + /** + * 新增项目类型 + * + * @param bo 项目类型 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdProjectTypeBo bo); + + /** + * 修改项目类型 + * + * @param bo 项目类型 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdProjectTypeBo bo); + + /** + * 校验并批量删除项目类型信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + List> buildMenuTreeSelect(List list); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCorrespondentListImp.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCorrespondentListImp.java index aa89eecb..d7b5d75f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCorrespondentListImp.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCorrespondentListImp.java @@ -3,6 +3,8 @@ package org.dromara.xzd.service.impl; import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.R; @@ -13,22 +15,24 @@ import org.dromara.system.service.impl.SysOssServiceImpl; import org.dromara.xzd.domain.*; import org.dromara.xzd.domain.bo.*; import org.dromara.xzd.domain.dto.AddCorrespondentDto; +import org.dromara.xzd.domain.dto.QuerCorrespondentDto; import org.dromara.xzd.domain.dto.XzdClienteleListDto; import org.dromara.xzd.domain.vo.XzdClienteleListSumVo; import org.dromara.xzd.domain.vo.XzdClienteleListVo; +import org.dromara.xzd.domain.vo.XzdCustomerinformationVo; import org.dromara.xzd.domain.vo.XzdPoiAreaVo; import org.dromara.xzd.enums.ZxdEnum; import org.dromara.xzd.mapper.XzdCustomerinformationMapper; import org.dromara.xzd.service.*; import org.dromara.xzd.utilS.AreaUtil; import org.dromara.xzd.utilS.IdWorker; +import org.springframework.beans.BeanUtils; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; +import java.time.LocalDateTime; +import java.util.*; import java.util.stream.Collectors; @@ -43,6 +47,7 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList { private final IXzdCustomerDetailService xzdCustomerDetailService; + private final IXzdAddressInfoService xzdAddressInfoService; private final SysOssServiceImpl sysOssService; @@ -77,24 +82,26 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList { @Cacheable(cacheNames = "xzdquList") public R queryPageList() { XzdPoiAreaVo xzdPoiAreaVo = new XzdPoiAreaVo(); - XzdPoiAreaVo areaList = areaUtil.getAreaList(100000L, xzdPoiAreaVo); + XzdPoiAreaVo areaList = areaUtil.getAreaList(0L, xzdPoiAreaVo); return R.ok("成功",areaList); } @Override + @Transactional(rollbackFor = Exception.class) public R addCorrespondent(AddCorrespondentDto dto) { // 客户信息添加 客户id - long id = IdWorker.getID(); - dto.getXzdCustomerinformation().setId(id); +// dto.getXzdCustomerinformation().setId(id); + dto.getXzdCustomerinformation().setPoiAreaId(dto.getXzdCustomerinformation().getPoiAreaId()); dto.getXzdCustomerinformation().setCreateDept(LoginHelper.getDeptId()); dto.getXzdCustomerinformation().setCreateBy((LoginHelper.getUserId())); // dto.getXzdCustomerinformation().setCreateTime(LocalDateTime.now()); xzdCustomerinformationService.insertByBo(dto.getXzdCustomerinformation()); + long id = dto.getXzdCustomerinformation().getId(); + // tab客户信息添加 if (dto.getXzdCustomerDetail() != null){ - dto.getXzdCustomerDetail().setId(IdWorker.getID()); dto.getXzdCustomerDetail().setCustomerinformationId(id); dto.getXzdCustomerDetail().setCreateDept(LoginHelper.getDeptId()); dto.getXzdCustomerDetail().setCreateBy((LoginHelper.getUserId())); @@ -106,7 +113,6 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList { if (xzdAddressInfo != null && xzdAddressInfo.size() > 0) { Collection collect = xzdAddressInfo.stream().map(xzdAddressInfoBo -> { xzdAddressInfoBo.setCustomerinformationId(id); - xzdAddressInfoBo.setId(IdWorker.getID()); xzdAddressInfoBo.setCreateDept(LoginHelper.getDeptId()); xzdAddressInfoBo.setCreateBy((LoginHelper.getUserId())); // xzdAddressInfoBo.setCreateTime(LocalDateTime.now()); @@ -121,13 +127,11 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList { // 联系人信息添加 List xzdContact = dto.getXzdContact(); - if (xzdContact != null && xzdContact.isEmpty()) { + if (xzdContact != null && xzdContact.size() > 0) { Collection collect1 = xzdContact.stream().map(xzdContactBo -> { xzdContactBo.setCustomerinformationId(id); - xzdContactBo.setId(IdWorker.getID()); xzdContactBo.setCreateDept(LoginHelper.getDeptId()); xzdContactBo.setCreateBy((LoginHelper.getUserId())); -// xzdContactBo.setCreateTime(LocalDateTime.now()); xzdContactBo.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue()); XzdContact temp = new XzdContact(); BeanUtil.copyProperties(xzdContactBo, temp); @@ -141,7 +145,6 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList { List xzdCertificateInfo = dto.getXzdCertificateInfo(); if (xzdCertificateInfo != null && xzdCertificateInfo.size() > 0) { List collect2 = xzdCertificateInfo.stream().map(xzdCertificateInfoBo -> { - xzdCertificateInfoBo.setId(IdWorker.getID()); xzdCertificateInfoBo.setCustomerinformationId(id); xzdCertificateInfoBo.setCreateDept(LoginHelper.getDeptId()); xzdCertificateInfoBo.setCreateBy((LoginHelper.getUserId())); @@ -161,7 +164,7 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList { List xzdQualificationInfo = dto.getXzdQualificationInfo(); if (xzdQualificationInfo != null && xzdQualificationInfo.size() > 0) { List collect3 = xzdQualificationInfo.stream().map(xzdQualificationInfoBo -> { - xzdQualificationInfoBo.setId(IdWorker.getID()); + xzdQualificationInfoBo.setCustomerinformationId(id); xzdQualificationInfoBo.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue()); xzdQualificationInfoBo.setCreateBy((LoginHelper.getUserId())); @@ -180,7 +183,6 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList { // 结算信息添加 XzdSettlementInfoBo xzdSettlementInfo = dto.getXzdSettlementInfo(); if (xzdSettlementInfo != null) { - xzdSettlementInfo.setId(IdWorker.getID()); xzdSettlementInfo.setCustomerinformationId(id); xzdSettlementInfo.setCreateDept(LoginHelper.getDeptId()); xzdSettlementInfo.setCreateBy((LoginHelper.getUserId())); @@ -195,7 +197,6 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList { // 业务信息添加 XzdBusinessInfoBo xzdBusinessInfo = dto.getXzdBusinessInfo(); if (xzdBusinessInfo != null) { - xzdBusinessInfo.setId(IdWorker.getID()); xzdBusinessInfo.setCustomerinformationId(id); xzdBusinessInfo.setCreateDept(LoginHelper.getDeptId()); xzdBusinessInfo.setCreateBy((LoginHelper.getUserId())); @@ -209,32 +210,37 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList { // 项目信息添加 - XzdProjectInfoBo xzdProjectInfo = dto.getXzdProjectInfo(); + List xzdProjectInfo = dto.getXzdProjectInfo(); if (xzdProjectInfo != null) { - xzdProjectInfo.setId(IdWorker.getID()); - xzdProjectInfo.setCustomerinformationId(id); - xzdProjectInfo.setCreateDept(LoginHelper.getDeptId()); - xzdProjectInfo.setCreateBy((LoginHelper.getUserId())); -// xzdProjectInfo.setCreateTime(LocalDateTime.now()); - xzdProjectInfo.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue()); - XzdProjectInfo info = new XzdProjectInfo(); - BeanUtil.copyProperties(xzdProjectInfo, info); - xzdProjectInfoService.save(info); + List collect = xzdProjectInfo.stream().map(item -> { + item.setCustomerinformationId(id); + item.setCreateDept(LoginHelper.getDeptId()); + item.setCreateBy((LoginHelper.getUserId())); + item.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue()); + XzdProjectInfo info = new XzdProjectInfo(); + BeanUtil.copyProperties(item, info); + return info; + }).collect(Collectors.toList()); + + xzdProjectInfoService.saveBatch(collect); + } // 合同信息添加 - XzdContractInfoBo xzdContractInfo = dto.getXzdContractInfo(); + List xzdContractInfo = dto.getXzdContractInfo(); if (xzdContractInfo != null) { - xzdContractInfo.setId(IdWorker.getID()); - xzdContractInfo.setCreateDept(LoginHelper.getDeptId()); - xzdContractInfo.setCreateBy((LoginHelper.getUserId())); -// xzdContractInfo.setCreateTime(LocalDateTime.now()); - xzdContractInfo.setCustomerinformationId(id); - xzdContractInfo.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue()); - XzdContractInfo info = new XzdContractInfo(); - BeanUtil.copyProperties(xzdContractInfo, info); - xzdContractInfoService.save(info); + List collect = xzdContractInfo.stream().map(item -> { + item.setCreateDept(LoginHelper.getDeptId()); + item.setCreateBy((LoginHelper.getUserId())); + item.setCustomerinformationId(id); + item.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue()); + XzdContractInfo info = new XzdContractInfo(); + BeanUtil.copyProperties(item, info); + return info; + }).collect(Collectors.toList()); + + xzdContractInfoService.saveBatch(collect); } @@ -243,7 +249,7 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList { List xzdCustomertypeInfo = dto.getXzdCustomertypeInfo(); if (xzdCustomertypeInfo != null && xzdCustomertypeInfo.size() > 0) { List collect = xzdCustomertypeInfo.stream().map(item -> { - item.setCustomertypeId(id); + item.setCustomerinformationId(id); item.setCreateDept(LoginHelper.getDeptId()); item.setCreateBy((LoginHelper.getUserId())); // item.setCreateTime(LocalDateTime.now()); @@ -258,18 +264,14 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList { } @Override - public R delCorrespondent(List dtos) { - if (dtos != null && dtos.size() > 0) { - dtos.forEach(item -> { - delCorrespondentVoid(item); - - }); + public R delCorrespondent(Long[] dto) { + for (int i = dto.length - 1; i >= 0; i--) { + delCorrespondentVoid(dto[i]); } return R.ok("删除成功"); - } @Override @@ -287,31 +289,248 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList { return R.ok(xzdClienteleListSumVo); } catch (Exception e) { + log.info(e.toString()); return R.warn("查询失败"); } } - public void delCorrespondentVoid(AddCorrespondentDto dto){ + @Override + @Transactional(rollbackFor = Exception.class) + public R putCorrespondent(AddCorrespondentDto dto) { + // 客户信息 if( dto.getXzdCustomerinformation() != null){ - xzdCustomerinformationService.removeById(dto.getXzdCustomerinformation().getId()); + xzdCustomerinformationService.updateByBo(dto.getXzdCustomerinformation()); } // tab客户信息 if (dto.getXzdCustomerDetail() != null){ - xzdCustomerDetailService.removeById(dto.getXzdCustomerDetail().getId()); + xzdCustomerDetailService.updateByBo(dto.getXzdCustomerDetail()); } // 地址信息 List xzdAddressInfo = dto.getXzdAddressInfo(); if (xzdAddressInfo != null && xzdAddressInfo.size() > 0) { - xzdAddressInfoService.removeByIds(xzdAddressInfo); + List collect = xzdAddressInfo.stream().map(xzdAddressInfoBo -> { + xzdAddressInfoBo.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue()); + XzdAddressInfo res = new XzdAddressInfo(); + BeanUtils.copyProperties(xzdAddressInfoBo, res); + return res; + + }).collect(Collectors.toList()); + + xzdAddressInfoService.saveOrUpdateBatch(collect); } - // 联系人信息添加 + // 联系人信息 List xzdContact = dto.getXzdContact(); if (xzdContact != null && xzdContact.isEmpty()) { - Collection collect1 = xzdContact.stream().map(xzdContactBo -> { + xzdContact.forEach(xzdContactBo -> { + XzdContact xzdContact1 = new XzdContact(); + xzdContact1.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue()); + BeanUtils.copyProperties(xzdContactBo, xzdContact1); + xzdContactService.saveOrUpdate(xzdContact1); + }); + } + + // 证件信息 + List xzdCertificateInfo = dto.getXzdCertificateInfo(); + if (xzdCertificateInfo != null && xzdCertificateInfo.size() > 0) { + List collect = xzdCertificateInfo.stream().map(xzdCertificateInfoBo -> { + XzdCertificateInfo info = new XzdCertificateInfo(); + BeanUtils.copyProperties(xzdCertificateInfoBo, info); + info.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue()); + return info; + }).collect(Collectors.toList()); + + + xzdCertificateInfoService.saveOrUpdateBatch(collect); + } + + + // 资质信息 + List xzdQualificationInfo = dto.getXzdQualificationInfo(); + if (xzdQualificationInfo != null && xzdQualificationInfo.size() > 0) { + List collect = xzdQualificationInfo.stream().map(xzdQualificationInfoBo -> { + XzdQualificationInfo info = new XzdQualificationInfo(); + BeanUtils.copyProperties(xzdQualificationInfoBo, info); + info.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue()); + return info; + }).collect(Collectors.toList()); + xzdQualificationInfoService.saveOrUpdateBatch(collect); + + + } + + + // 结算信息 + XzdSettlementInfoBo xzdSettlementInfo = dto.getXzdSettlementInfo(); + if (xzdSettlementInfo != null) { + xzdSettlementInfo.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue()); + xzdSettlementInfoService.updateByBo(xzdSettlementInfo); + } + + + // 业务信息 + XzdBusinessInfoBo xzdBusinessInfo = dto.getXzdBusinessInfo(); + if (xzdBusinessInfo != null) { + + xzdBusinessInfo.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue()); + xzdBusinessInfoService.updateByBo(xzdBusinessInfo); + } + + + // 项目信息 + + List xzdProjectInfo = dto.getXzdProjectInfo(); + if (xzdProjectInfo != null) { + Collection collect = xzdProjectInfo.stream().map(item -> { + XzdProjectInfo xzdProjectInfoBo = new XzdProjectInfo(); + BeanUtil.copyProperties(item, xzdProjectInfoBo); + xzdProjectInfoBo.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue()); + return xzdProjectInfoBo; + }).collect(Collectors.toList()); + + xzdProjectInfoService.saveOrUpdateBatch(collect); + } + + + // 合同信息 + List xzdContractInfo = dto.getXzdContractInfo(); + if (xzdContractInfo != null) { + + List collect = xzdContractInfo.stream().map(item -> { + XzdContractInfo xzdContractInfoBo = new XzdContractInfo(); + BeanUtil.copyProperties(item, xzdContractInfoBo); + xzdContractInfoBo.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue()); + return xzdContractInfoBo; + }).collect(Collectors.toList()); + xzdContractInfoService.saveOrUpdateBatch(collect); + } + + + // 客户类型 + + List xzdCustomertypeInfo = dto.getXzdCustomertypeInfo(); + if (xzdCustomertypeInfo != null && xzdCustomertypeInfo.size() > 0) { + xzdCustomertypeInfoService.getBaseMapper().delete(new LambdaQueryWrapper().eq(XzdCustomertypeInfo::getCustomerinformationId, dto.getXzdCustomerinformation().getId())); + List collect = xzdCustomertypeInfo.stream().map(xzdCustomertypeInfoBo -> { + XzdCustomertypeInfo xzdCustomertypeInfo1 = new XzdCustomertypeInfo(); + BeanUtils.copyProperties(xzdCustomertypeInfoBo, xzdCustomertypeInfo1); + xzdCustomertypeInfo1.setCustomerinformationId(dto.getXzdCustomerinformation().getId()); + xzdCustomertypeInfo1.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue()); + return xzdCustomertypeInfo1; + + }).collect(Collectors.toList()); + xzdCustomertypeInfoService.saveBatch(collect); + } + return R.ok("修改成功"); + + } + + @Override + public R getCustomerByid(Long id) { + QuerCorrespondentDto dto = new QuerCorrespondentDto(); + // 客户信息 + XzdCustomerinformationVo xzdCustomerinformationVo = xzdCustomerinformationService.queryById(id); + dto.setXzdCustomerinformation(xzdCustomerinformationVo); + +// tab客户信息 + HashMap temp = new HashMap<>(); + temp.put("customerinformation_id", id); + + + XzdCustomerDetail xzdCustomerDetails = xzdCustomerDetailService.getBaseMapper().selectOne(new LambdaQueryWrapper().eq(XzdCustomerDetail::getCustomerinformationId,id)); + + dto.setXzdCustomerDetail(xzdCustomerDetails); + + + // 地址信息 + List xzdAddressInfos = xzdAddressInfoService.getBaseMapper().selectByMap(temp); + dto.setXzdAddressInfo(xzdAddressInfos); + + + // 联系人信息 + + + List xzdContacts = xzdContactService.getBaseMapper().selectByMap(temp); + dto.setXzdContact(xzdContacts); + + + // 证件信息 + + List xzdCertificateInfos = xzdCertificateInfoService.getBaseMapper().selectByMap(temp); + dto.setXzdCertificateInfo(xzdCertificateInfos); + + + // 资质信息 + + List xzdQualificationInfos = xzdQualificationInfoService.getBaseMapper().selectByMap(temp); + dto.setXzdQualificationInfo(xzdQualificationInfos); + + + // 结算信息 + + XzdSettlementInfo xzdSettlementInfo = xzdSettlementInfoService.getBaseMapper().selectOne(new LambdaQueryWrapper().eq(XzdSettlementInfo::getCustomerinformationId, id)); + dto.setXzdSettlementInfo(xzdSettlementInfo); + + + // 业务信息 + + XzdBusinessInfo xzdBusinessInfo = xzdBusinessInfoService.getBaseMapper().selectOne(new LambdaQueryWrapper().eq(XzdBusinessInfo::getCustomerinformationId, id)); + dto.setXzdBusinessInfo(xzdBusinessInfo); + + + // 项目信息 + + + List xzdProjectInfos = xzdProjectInfoService.getBaseMapper().selectByMap(temp); + dto.setXzdProjectInfo(xzdProjectInfos); + + + // 合同信息 + + List xzdContractInfos = xzdContractInfoService.getBaseMapper().selectByMap(temp); + dto.setXzdContractInfo(xzdContractInfos); + + + // 客户类型 + + + List xzdCustomertypeInfos = xzdCustomertypeInfoService.getBaseMapper().selectByMap(temp); + dto.setXzdCustomertypeInfo(xzdCustomertypeInfos); + + + return R.ok(dto); + } + + public void delCorrespondentVoid(Long dto){ + +// 客户信息 + xzdCustomerinformationService.removeById(dto); + +// tab客户信息 + QueryWrapper wrapper = new QueryWrapper<>().eq("customerinformation_id", dto); + + HashMap temp = new HashMap<>(); + temp.put("customerinformation_id", dto); + + + xzdCustomerDetailService.removeByMap(temp); + + // 地址信息 + xzdAddressInfoService.removeByMap(temp); + + + + // 联系人信息 + + + + // 联系人信息 + List xzdContact = xzdContactService.getBaseMapper().selectByMap(temp); + if (xzdContact != null && xzdContact.size() > 0) { + xzdContact.stream().forEach(xzdContactBo -> { // 删除附件 if (!StringUtils.isEmpty(xzdContactBo.getAttachment())){ List collect = Arrays.stream(xzdContactBo.getAttachment().split(",")).map(item -> { @@ -320,18 +539,15 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList { sysOssService.deleteWithValidByIds(collect, false); log.info("删除联系人附件成功"); } - XzdContact temp = new XzdContact(); - BeanUtil.copyProperties(xzdContactBo, temp); - return temp; - }).collect(Collectors.toList()); - - xzdContactService.removeByIds(collect1); + }); } + xzdContactService.removeByMap(temp); + // 证件信息 - List xzdCertificateInfo = dto.getXzdCertificateInfo(); + List xzdCertificateInfo = xzdCertificateInfoService.getBaseMapper().selectByMap(temp); if (xzdCertificateInfo != null && xzdCertificateInfo.size() > 0) { - List collect2 = xzdCertificateInfo.stream().map(xzdCertificateInfoBo -> { + xzdCertificateInfo.stream().forEach(xzdCertificateInfoBo -> { String attachment = xzdCertificateInfoBo.getAttachment(); if (!StringUtils.isEmpty(attachment)){ List collect = Arrays.stream(attachment.split(",")).map(item -> { @@ -340,20 +556,15 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList { sysOssService.deleteWithValidByIds(collect, false); log.info("删除证件信息附件成功"); } - - XzdCertificateInfo info = new XzdCertificateInfo(); - BeanUtil.copyProperties(xzdCertificateInfoBo, info); - return info; - - }).collect((Collectors.toList())); - xzdCertificateInfoService.removeByIds(collect2); + }); } + xzdCertificateInfoService.removeByMap(temp); // 资质信息 - List xzdQualificationInfo = dto.getXzdQualificationInfo(); + List xzdQualificationInfo = xzdQualificationInfoService.getBaseMapper().selectByMap(temp); if (xzdQualificationInfo != null && xzdQualificationInfo.size() > 0) { - List collect3 = xzdQualificationInfo.stream().map(xzdQualificationInfoBo -> { + xzdQualificationInfo.stream().forEach(xzdQualificationInfoBo -> { String attachment = xzdQualificationInfoBo.getAttachment(); if (!StringUtils.isEmpty(attachment)){ List collect = Arrays.stream(attachment.split(",")).map(item -> { @@ -362,59 +573,40 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList { sysOssService.deleteWithValidByIds(collect, false); log.info("删除资质信息附件成功"); } - - XzdQualificationInfo info = new XzdQualificationInfo(); - BeanUtil.copyProperties(xzdQualificationInfoBo, info); - return info; - }).collect((Collectors.toList())); - xzdQualificationInfoService.removeByIds(collect3); - + }); } + xzdQualificationInfoService.removeByMap(temp); // 结算信息 - XzdSettlementInfoBo xzdSettlementInfo = dto.getXzdSettlementInfo(); - if (xzdSettlementInfo != null) { - xzdSettlementInfoService.removeById(xzdSettlementInfo); - } + xzdSettlementInfoService.removeByMap(temp); + // 业务信息 - XzdBusinessInfoBo xzdBusinessInfo = dto.getXzdBusinessInfo(); - if (xzdBusinessInfo != null) { - xzdBusinessInfoService.removeById(xzdBusinessInfo); - } + + xzdBusinessInfoService.removeByMap(temp); + // 项目信息 - XzdProjectInfoBo xzdProjectInfo = dto.getXzdProjectInfo(); - if (xzdProjectInfo != null) { - xzdProjectInfoService.removeById(xzdProjectInfo); - } + + xzdProjectInfoService.removeByMap(temp); + // 合同信息 - XzdContractInfoBo xzdContractInfo = dto.getXzdContractInfo(); - if (xzdContractInfo != null) { - xzdContractInfoService.removeById(xzdContractInfo); - } + + xzdContractInfoService.removeByMap(temp); + // 客户类型 - List xzdCustomertypeInfo = dto.getXzdCustomertypeInfo(); - if (xzdCustomertypeInfo != null && xzdCustomertypeInfo.size() > 0) { - xzdCustomertypeInfoService.removeByIds(xzdCustomertypeInfo); - } + xzdCustomertypeInfoService.removeByMap(temp); } - - - - - - } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCustomertypeServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCustomertypeServiceImpl.java index 334589df..78e510ef 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCustomertypeServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCustomertypeServiceImpl.java @@ -152,4 +152,13 @@ public class XzdCustomertypeServiceImpl extends ServiceImpl getCustomerByid(Long id) { + AddCorrespondentDto dto = new AddCorrespondentDto(); + + + + return null; + } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectTypeServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectTypeServiceImpl.java new file mode 100644 index 00000000..6550efad --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectTypeServiceImpl.java @@ -0,0 +1,140 @@ +package org.dromara.xzd.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.tree.Tree; +import cn.hutool.core.lang.tree.TreeNodeConfig; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.utils.TreeBuildUtils; +import org.dromara.xzd.domain.XzdProjectType; +import org.dromara.xzd.domain.bo.XzdProjectTypeBo; +import org.dromara.xzd.domain.vo.XzdProjectTypeVo; +import org.dromara.xzd.mapper.XzdProjectTypeMapper; +import org.dromara.xzd.service.IXzdProjectTypeService; +import org.springframework.stereotype.Service; + + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 项目类型Service业务层处理 + * + * @author Lion Li + * @date 2025-10-09 + */ +@RequiredArgsConstructor +@Service +public class XzdProjectTypeServiceImpl extends ServiceImpl implements IXzdProjectTypeService { + + private final XzdProjectTypeMapper baseMapper; + + /** + * 查询项目类型 + * + * @param id 主键 + * @return 项目类型 + */ + @Override + public XzdProjectTypeVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + + /** + * 查询符合条件的项目类型列表 + * + * @param bo 查询条件 + * @return 项目类型列表 + */ + @Override + public List queryList(XzdProjectTypeBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdProjectTypeBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdProjectType::getId); + lqw.eq(bo.getParentId() != null, XzdProjectType::getParentId, bo.getParentId()); + lqw.like(StringUtils.isNotBlank(bo.getTypeName()), XzdProjectType::getTypeName, bo.getTypeName()); + lqw.eq(bo.getSortOrder() != null, XzdProjectType::getSortOrder, bo.getSortOrder()); + + return lqw; + } + + /** + * 新增项目类型 + * + * @param bo 项目类型 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdProjectTypeBo bo) { + XzdProjectType add = MapstructUtils.convert(bo, XzdProjectType.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改项目类型 + * + * @param bo 项目类型 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdProjectTypeBo bo) { + XzdProjectType update = MapstructUtils.convert(bo, XzdProjectType.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdProjectType entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除项目类型信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } + + @Override + public List> buildMenuTreeSelect(List list) { + if (CollUtil.isEmpty(list)) { + return CollUtil.newArrayList(); + } + TreeNodeConfig config = new TreeNodeConfig(); + + config.setDeep(2); + return TreeBuildUtils.build(list,"0", config, (menu, tree) -> { + tree.setId(menu.getId().toString()) + .setParentId(menu.getParentId().toString()) + .setName(menu.getTypeName()) + .setWeight(menu.getSortOrder()); + }); + + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/utilS/AreaUtil.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/utilS/AreaUtil.java index 8caf2e2a..6d37afaf 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/utilS/AreaUtil.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/utilS/AreaUtil.java @@ -15,8 +15,11 @@ import org.dromara.xzd.service.impl.XzdPoiAreaServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.HashMap; import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -30,6 +33,8 @@ public class AreaUtil { private final XzdPoiAreaMapper xzdPoiAreaMapper; + + public XzdPoiAreaVo getAreaList(Long parentId,XzdPoiAreaVo vo) { if (StringUtils.isEmpty(parentId.toString())) { @@ -59,4 +64,11 @@ public class AreaUtil { return vo; } + + + // 生成日期格式的数字 + public static String generateDateBasedNumber() { + String dateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); + return String.format(dateStr); + } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/XzdCustomerinformationMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/XzdCustomerinformationMapper.xml index aaf9119c..c68f4dc1 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/XzdCustomerinformationMapper.xml +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/XzdCustomerinformationMapper.xml @@ -7,6 +7,7 @@ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/biddingManagement/XzdBidPreProjectMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/biddingManagement/XzdBidPreProjectMapper.xml new file mode 100644 index 00000000..b503afc3 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/biddingManagement/XzdBidPreProjectMapper.xml @@ -0,0 +1,87 @@ + + + + + + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/app/FlowAppController.java b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/app/FlowAppController.java index 06676361..170930c8 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/app/FlowAppController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/app/FlowAppController.java @@ -25,8 +25,6 @@ import org.springframework.web.bind.annotation.*; import java.util.*; import java.util.stream.Collectors; -import static org.dromara.workflow.listener.WorkflowGlobalListener.getType; - @ConditionalOnEnable @Validated @RequiredArgsConstructor @@ -50,8 +48,7 @@ public class FlowAppController { } List list= (List) stringObjectMap.get("list"); - Map map = list.stream().filter(vo -> !"copy".equals(vo.getFlowStatus())) - .collect(Collectors.toMap(FlowHisTaskVo::getNodeCode, vo -> vo)); + Map map = list.stream().collect(Collectors.toMap(FlowHisTaskVo::getNodeCode, vo -> vo)); Long instanceId = (Long) stringObjectMap.get("instanceId"); @@ -89,24 +86,9 @@ public class FlowAppController { appVo.setFlowStatus(BusinessStatusEnum.WAITING.getStatus()); if(nodeJson.getNodeType()==1){ String permissionFlag = nodeJson.getPermissionFlag(); - if(StrUtil.isNotBlank(permissionFlag)){ - permissionFlag = permissionFlag.replace("@@", ","); - } List userDTOS = flwTaskAssigneeService.fetchUsersByStorageIds(permissionFlag, projectId); String auditName = userDTOS.stream().map(UserDTO::getNickName).collect(Collectors.joining(",")); - String type = getType(permissionFlag); - if(type != null){ - try { - String flowCode = defJson.getFlowCode(); - List longs = userService.selectUserByProfession(flowCode.split("_")[1], businessId, type,projectId); - String s = userService.selectNicknameByIds(longs.stream().map(String::valueOf).collect(Collectors.joining(","))); - appVo.setAuditName(s); - }catch (Exception e) { - appVo.setAuditName(auditName); - } - }else { - appVo.setAuditName(auditName); - } + appVo.setAuditName(auditName); } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java index 3b51f1ed..7aa19ce1 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java @@ -187,7 +187,7 @@ public class WorkflowGlobalListener implements GlobalListener { } - public static String getType(String permissionFlag){ + public String getType(String permissionFlag){ // 1961314792461586433 校审员(系统) // 1961315028017893378 审核员(系统) // 1961315147199041537 审定员(系统) diff --git a/xinnengyuan/script/sql/tbgl.sql b/xinnengyuan/script/sql/tbgl.sql deleted file mode 100644 index 9468a6f0..00000000 --- a/xinnengyuan/script/sql/tbgl.sql +++ /dev/null @@ -1,411 +0,0 @@ - - - -drop table if exists xzd_project_risk_assessment; -CREATE TABLE `xzd_project_risk_assessment` -( - `id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', - `document_number` VARCHAR(64) NOT NULL COMMENT '单据编号', - `project_name` VARCHAR(255) NOT NULL COMMENT '项目名称', - `project_business_owner` VARCHAR(255) NOT NULL COMMENT '项目业主', - `joint_body_members` VARCHAR(500) NULL COMMENT '联合体成员方', - `estimated_contract_amount` DECIMAL(20, 4) default 0.0000 NOT NULL COMMENT '预计合同额(万元)', - `unit_price_index` VARCHAR(255) NULL COMMENT '单价指标', - `engineering_risk` VARCHAR(16) NULL COMMENT '工期风险', - `technical_risk` VARCHAR(16) NULL COMMENT '技术风险', - `economic_risk` VARCHAR(16) NULL COMMENT '经济风险', - `contract_risk` VARCHAR(16) NULL COMMENT '合同风险', - `personnel_risk` VARCHAR(16) NULL COMMENT '人员风险', - `construction_risk` VARCHAR(16) NULL COMMENT '施工风险', - `management_risk` VARCHAR(16) NULL COMMENT '管理风险', - `subcontract_risk` VARCHAR(16) NULL COMMENT '分包风险', - `other_risks` TEXT null COMMENT '其他风险', - `file_id` varchar(1024) NULL COMMENT '文件ID', - `remark` TEXT null COMMENT '备注', - `audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态', - `create_by` bigint NULL COMMENT '创建者', - `update_by` bigint NULL COMMENT '更新者', - `create_dept` bigint null comment '创建部门', - `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' -) COMMENT ='项目风险评估签审意见'; - -drop table if exists xzd_bid_pre_project; - -CREATE TABLE xzd_bid_pre_project -( - `id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', - `project_number` VARCHAR(64) NOT NULL COMMENT '项目编码', - `project_name` VARCHAR(255) NOT NULL COMMENT '项目名称', - `country` VARCHAR(100) NOT NULL COMMENT '国家', - `province` VARCHAR(100) NOT NULL COMMENT '省', - `city` VARCHAR(100) NOT NULL COMMENT '城市', - `district` VARCHAR(100) NOT NULL COMMENT '区县', - `project_location` VARCHAR(255) null COMMENT '工程地点', - `capital_source` VARCHAR(255) null COMMENT '资金来源', - `contracting_method` VARCHAR(16) null COMMENT '承包方式', - `operation_mode` VARCHAR(16) null COMMENT '经营模式', - `project_type_id` BIGINT NOT NULL COMMENT '项目类型', - `bidding_method` VARCHAR(100) null COMMENT '招标方式', - `liaison_method` VARCHAR(100) null COMMENT '联系方法', - `investment_unit` VARCHAR(255) null COMMENT '投资单位', - `project_cost` DECIMAL(20, 2) DEFAULT 0.0000 not null COMMENT '工程造价(万元)', - `information_cost` DECIMAL(20, 2) DEFAULT 0.0000 not null COMMENT '资料费', - -- 公共字段 - `file_id` varchar(1024) NULL COMMENT '文件ID', - `remark` TEXT null COMMENT '备注', - `audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态', - `create_by` bigint NULL COMMENT '创建者', - `update_by` bigint NULL COMMENT '更新者', - `create_dept` bigint null comment '创建部门', - `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' -) COMMENT ='标前立项'; - -drop table if exists xzd_bqlx_project_info; - -CREATE TABLE xzd_bqlx_project_info -( - `id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', - `bid_pre_project_id` BIGINT NOT NULL COMMENT '关联标前立项ID', - `expected_start_date` DATE COMMENT '预计开工日期', - `qualification_requirement` VARCHAR(512) COMMENT '资质要求', - `bid_start_date` DATE COMMENT '报名开始时间', - `bid_end_date` DATE NOT NULL COMMENT '报名截止时间', - `submission_deadline` DATE COMMENT '投标截止时间', - `design_description` VARCHAR(512) COMMENT '设计情况', - `project_status` TEXT COMMENT '工程概况', - `bidding_announcement_address` VARCHAR(512) COMMENT '招标公告地址', - `quality_requirement` VARCHAR(255) COMMENT '质量要求', - `duration_days` DECIMAL(10, 1) default 0.0 COMMENT '工期要求(天)', - `lowest_qualification_requirement` VARCHAR(512) COMMENT '最低资质要求', - `project_manager_requirement` VARCHAR(512) COMMENT '项目经理要求', - `performance_requirement` VARCHAR(512) COMMENT '业绩要求', - `start_date` DATE COMMENT '开标时间', - `evaluation_method` VARCHAR(128) COMMENT '评标方式', - `bidding_deposit_form` VARCHAR(255) COMMENT '投标保证金形式', - `bidding_deposit` DECIMAL(20, 4) default 0.0000 COMMENT '投标保证金', - `construction_unit` VARCHAR(255) COMMENT '建设单位', - `construction_person` VARCHAR(100) COMMENT '建设单位联系人', - `construction_method` VARCHAR(100) COMMENT '建设单位联系方式', - `bidding_unit` VARCHAR(255) COMMENT '招标单位', - `bidding_person` VARCHAR(100) COMMENT '招标单位联系人', - `bidding_method` VARCHAR(100) COMMENT '招标单位联系方式', - `cost_price` DECIMAL(20, 4) default 0.0000 COMMENT '成本价', - `bidding_price_control` DECIMAL(20, 4) default 0.0000 COMMENT '招标控制价', - `project_number` VARCHAR(64) NOT NULL COMMENT '项目编码', - `default_finance` varchar(255) NULL COMMENT '默认财务组织', - `involve_finance` varchar(255) NULL COMMENT '涉及财务组织', - -- 公共字段 - `file_id` varchar(1024) NULL COMMENT '文件ID', - `remark` TEXT null COMMENT '备注', - `audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态', - `create_by` bigint NULL COMMENT '创建者', - `update_by` bigint NULL COMMENT '更新者', - `create_dept` bigint null comment '创建部门', - `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' -) COMMENT ='标前立项-项目信息'; - -drop table if exists xzd_project_type; - -CREATE TABLE xzd_project_type -( - `id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', - `parent_id` BIGINT DEFAULT 0 NOT NULL COMMENT '父节点ID', - `type_name` VARCHAR(100) NOT NULL COMMENT '项目类型名称', - `sort_order` INT DEFAULT 0 COMMENT '排序', - `remark` VARCHAR(255) COMMENT '备注', - -- 公共字段 - `create_by` bigint NULL COMMENT '创建者', - `update_by` bigint NULL COMMENT '更新者', - `create_dept` bigint null comment '创建部门', - `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' -) COMMENT ='项目类型'; - -drop table if exists xzd_bidding_file_estimate; - -CREATE TABLE xzd_bidding_file_estimate -( - `id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', - `document_code` VARCHAR(50) NOT NULL COMMENT '单据编码', - `document_date` DATE NOT NULL COMMENT '单据日期', - `project_name` VARCHAR(255) NOT NULL COMMENT '项目名称', - `title` VARCHAR(255) COMMENT '标题', - `project_location` VARCHAR(255) COMMENT '工程地点', - `bidding_unit` VARCHAR(255) COMMENT '招标单位', - `bidding_method` VARCHAR(16) COMMENT '招标方式', - `contracting_method` VARCHAR(16) COMMENT '承包方式', - `start_date` DATE COMMENT '开标时间', - `project_overview` TEXT COMMENT '工程概况', - `bidding_date` DATE COMMENT '投标时间', - `bidding_address` VARCHAR(255) COMMENT '投标地址', - `bidding_control_price` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '招标控制价', - `evaluation_method` VARCHAR(100) COMMENT '评标方法', - `bidding_scope` VARCHAR(255) COMMENT '招标范围', - - `project_manager_requirement` varchar(1024) COMMENT '项目经理要求', - - -- 公共字段 - `file_id` varchar(1024) NULL COMMENT '文件ID', - `remark` TEXT null COMMENT '备注', - `audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态', - `create_by` bigint NULL COMMENT '创建者', - `update_by` bigint NULL COMMENT '更新者', - `create_dept` bigint null comment '创建部门', - `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' - -) COMMENT ='招标文件审估'; - - -drop table if exists xzd_bidding_agency_fee_payment; - -CREATE TABLE xzd_bidding_agency_fee_payment -( - `id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', - `document_code` VARCHAR(50) NOT NULL COMMENT '单据编码', - `document_date` DATE NOT NULL COMMENT '单据日期', - `title` VARCHAR(255) COMMENT '标题', - - `project_name` VARCHAR(255) NOT NULL COMMENT '项目', - `project_location` VARCHAR(512) COMMENT '工程地点', - `contact_person` VARCHAR(100) COMMENT '联系人', - `contact_method` VARCHAR(100) COMMENT '联系方式', - `bidding_date` DATE COMMENT '投标时间', - - `agency_name` VARCHAR(255) NOT NULL COMMENT '代理机构名称', - - - `application_amount` DECIMAL(20, 4) DEFAULT 0.0000 NOT NULL COMMENT '申请金额', - `payment_method` VARCHAR(16) NOT NULL COMMENT '支付方式', - `receiving_bank` VARCHAR(255) COMMENT '收款银行', - `receiving_account` VARCHAR(100) COMMENT '收款', - `reason` varchar(1024) COMMENT '事由', - - `file_id` varchar(1024) NULL COMMENT '文件ID', - `remark` TEXT null COMMENT '备注', - `audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态', - `create_by` bigint NULL COMMENT '创建者', - `update_by` bigint NULL COMMENT '更新者', - `create_dept` bigint null comment '创建部门', - `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' - -) COMMENT ='招标代理服务费支付申请'; - -drop table if exists xzd_bid_deposit_payment; - -CREATE TABLE `xzd_bid_deposit_payment` -( - `id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', - `document_code` VARCHAR(50) NOT NULL COMMENT '单据编码', - `document_date` DATE NOT NULL COMMENT '单据日期', - `project_name` VARCHAR(255) NOT NULL COMMENT '项目名称', - `project_cost` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '工程造价(万元)', - `business_mode` VARCHAR(100) DEFAULT NULL COMMENT '经营模式', - `deposit_amount` DECIMAL(20, 4) DEFAULT 0.0000 NOT NULL COMMENT '保证金金额', - `deposit_amount_capital` VARCHAR(512) NOT NULL COMMENT '保证金金额大写', - `remittance_method` VARCHAR(128) DEFAULT NULL COMMENT '汇款方式', - `payment_deadline` DATETIME DEFAULT NULL COMMENT '支付截止时间', - `receiving_unit` VARCHAR(255) DEFAULT NULL COMMENT '收款单位', - `receiving_account_name` VARCHAR(255) DEFAULT NULL COMMENT '收款账户名称', - `receiving_bank` VARCHAR(255) DEFAULT NULL COMMENT '收款账户银行', - `receiving_bank_account` VARCHAR(100) DEFAULT NULL COMMENT '收款银行账号', - `request_recovery_days` INT DEFAULT '0' COMMENT '招标结束后要求工作日收回', - `deposit_type` VARCHAR(16) NOT NULL COMMENT '保证金类型', - `receipt_requirement` VARCHAR(16) DEFAULT NULL COMMENT '回单要求', - `is_mail` TINYINT(1) DEFAULT '0' COMMENT '是否邮寄(0否 1是)', - `deposit_ratio` DECIMAL(5, 2) default 0.00 COMMENT '保证金比例', - `file_id` varchar(1024) NULL COMMENT '文件ID', - `remark` TEXT null COMMENT '备注', - `audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态', - `create_by` bigint NULL COMMENT '创建者', - `update_by` bigint NULL COMMENT '更新者', - `create_dept` bigint null comment '创建部门', - `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' -) COMMENT = '投标保证金缴纳'; - -drop table if exists xzd_bid_deposit_recovery; - -CREATE TABLE `xzd_bid_deposit_recovery` -( - `id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', - `document_code` VARCHAR(50) NOT NULL COMMENT '单据编码', - `document_date` DATE NOT NULL COMMENT '单据日期', - `project_name` VARCHAR(255) NOT NULL COMMENT '项目名称', - `project_type` BIGINT DEFAULT NULL COMMENT '项目类型', - `business_mode` VARCHAR(255) DEFAULT NULL COMMENT '经营模式', - `project_cost` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '工程造价', - `recovery_amount` DECIMAL(20, 4) DEFAULT 0.0000 NOT NULL COMMENT '收回金额', - `recovery_amount_capital` VARCHAR(255) NOT NULL COMMENT '收回金额大写', - `data_fee` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '资料费', - `data_fee_capital` VARCHAR(255) DEFAULT NULL COMMENT '资料费大写', - `refund_amount` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '退款金额', - `recovery_date` DATE DEFAULT NULL COMMENT '收回日期', - `deposit_status` VARCHAR(50) DEFAULT NULL COMMENT '保证金状态', - `deposit_amount` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '保证金金额', - `deposit_amount_capital` VARCHAR(100) DEFAULT NULL COMMENT '保证金金额大写', - `deposit_remittance_method` VARCHAR(255) DEFAULT NULL COMMENT '保证金汇款方式', - `payment_deadline` DATETIME DEFAULT NULL COMMENT '支付截止时间', - `receiving_unit` VARCHAR(255) DEFAULT NULL COMMENT '收款单位', - `deposit_receiving_account_name` VARCHAR(255) DEFAULT NULL COMMENT '保证金收款账户名称', - `receiving_bank` VARCHAR(255) DEFAULT NULL COMMENT '收款账户银行', - `receiving_bank_account` VARCHAR(255) DEFAULT NULL COMMENT '收款账户账号', - `applicant` VARCHAR(100) DEFAULT NULL COMMENT '申请人', - `application_unit` VARCHAR(255) DEFAULT NULL COMMENT '申请单位', - `application_date` DATE DEFAULT NULL COMMENT '申请日期', - `file_id` varchar(1024) NULL COMMENT '文件ID', - `remark` TEXT null COMMENT '备注', - `audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态', - `create_by` bigint NULL COMMENT '创建者', - `update_by` bigint NULL COMMENT '更新者', - `create_dept` bigint null comment '创建部门', - `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' -) COMMENT = '投标保证金收回'; - -drop table if exists xzd_bidding_document; - -CREATE TABLE `xzd_bidding_document` -( - `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `document_number` VARCHAR(50) NOT NULL COMMENT '单据编号', - `title` VARCHAR(255) DEFAULT NULL COMMENT '标题', - `bidding_time` DATETIME NOT NULL COMMENT '投标时间', - `project_name` VARCHAR(255) NOT NULL COMMENT '项目名称', - `project_type` BIGINT DEFAULT NULL COMMENT '项目类型ID', - `bid_unit` VARCHAR(255) DEFAULT NULL COMMENT '投标单位', - `document_date` DATE NOT NULL COMMENT '单据日期', - `project_manager` VARCHAR(100) DEFAULT NULL COMMENT '项目经理', - `project_overview` TEXT DEFAULT NULL COMMENT '工程概况', - `organization` VARCHAR(255) DEFAULT NULL COMMENT '组织', - `file_id` varchar(1024) NULL COMMENT '文件ID', - `remark` TEXT null COMMENT '备注', - `audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态', - `create_by` bigint NULL COMMENT '创建者', - `update_by` bigint NULL COMMENT '更新者', - `create_dept` bigint null comment '创建部门', - `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - PRIMARY KEY (`id`) -) COMMENT ='投标文件'; - -drop table if exists xzd_tbwj_business_bid; - -CREATE TABLE `xzd_tbwj_business_bid` -( - `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `bidding_document_id` BIGINT NOT NULL COMMENT '投标文件ID', - `bid_price` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '标底价', - `discount_rate` DECIMAL(5, 2) DEFAULT 0.00 COMMENT '折扣率', - `ceiling_price` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '最高限价', - `cost_price` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '成本价', - `total_bid_price` DECIMAL(20, 4) DEFAULT 0.0000 NOT NULL COMMENT '投标报价', - `fee_rate` DECIMAL(5, 2) DEFAULT 0.00 COMMENT '毛利率', - `bid_tax_rate` DECIMAL(5, 2) DEFAULT 0.00 COMMENT '投标税率', - `petty_cash` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '备用金', - `compilation_dept` VARCHAR(512) NULL COMMENT '编制部门', - `estimated_profit` VARCHAR(512) NULL COMMENT '报价说明', - PRIMARY KEY (`id`), - INDEX `idx_bidding_document_id` (`bidding_document_id`) -) COMMENT ='投标文件-商务标'; - -drop table if exists xzd_tbwj_technical_bid; - -CREATE TABLE `xzd_tbwj_technical_bid` -( - `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `bidding_document_id` BIGINT NOT NULL COMMENT '投标文件ID', - `quality_requirements` TEXT DEFAULT NULL COMMENT '质量要求', - `technical_requirements` TEXT DEFAULT NULL COMMENT '技术要求', - `compilation_dept` VARCHAR(255) DEFAULT NULL COMMENT '编制部门', - `compilation_explain` VARCHAR(255) DEFAULT NULL COMMENT '编制说明', - PRIMARY KEY (`id`), - INDEX `idx_bidding_document_id` (`bidding_document_id`) -) COMMENT ='投标文件-技术标'; - -drop table if exists xzd_tbwj_qualification_requirements; -CREATE TABLE `xzd_tbwj_qualification_requirements` -( - `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `bidding_document_id` BIGINT NOT NULL COMMENT '投标文件ID', - `qualification_requirement` VARCHAR(512) NOT NULL COMMENT '资审要求', - `compilation_points` TEXT DEFAULT NULL COMMENT '编制要点', - `provide_time` DATETIME NOT NULL COMMENT '提供时间', - `remark` TEXT null COMMENT '备注', - PRIMARY KEY (`id`), - INDEX `idx_bidding_document_id` (`bidding_document_id`) -) COMMENT ='投标文件-资审要求'; - -drop table if exists xzd_tbwj_business_bid_requirements; -CREATE TABLE `xzd_tbwj_business_bid_requirements` -( - `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `bidding_document_id` BIGINT NOT NULL COMMENT '投标文件ID', - `business_bid_requirement` VARCHAR(512) NOT NULL COMMENT '商务标要求', - `compilation_points` TEXT DEFAULT NULL COMMENT '编制要点', - `provide_time` DATETIME NOT NULL COMMENT '提供时间', - `remark` TEXT null COMMENT '备注', - PRIMARY KEY (`id`), - INDEX `idx_bidding_document_id` (`bidding_document_id`) -) COMMENT ='投标文件-商务标要求'; - -drop table if exists xzd_tbwj_technical_bid_requirements; -CREATE TABLE `xzd_tbwj_technical_bid_requirements` -( - `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `bidding_document_id` BIGINT NOT NULL COMMENT '投标文件ID', - `technical_bid_requirement` VARCHAR(512) NOT NULL COMMENT '技术标要求', - `compilation_points` TEXT DEFAULT NULL COMMENT '编制要点', - `provide_time` DATETIME NOT NULL COMMENT '提供时间', - `remark` TEXT null COMMENT '备注', - PRIMARY KEY (`id`), - INDEX `idx_bidding_document_id` (`bidding_document_id`) -) COMMENT ='投标文件-技术标要求'; - -drop table if exists xzd_post_bid_analysis; -CREATE TABLE `xzd_post_bid_analysis` -( - `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `project_code` VARCHAR(100) NOT NULL COMMENT '项目编码', - `project_name` VARCHAR(255) NOT NULL COMMENT '项目名称', - `project_cost` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '工程造价(万元)', - `project_type` BIGINT DEFAULT NULL COMMENT '项目类型ID', - `project_address` VARCHAR(255) DEFAULT NULL COMMENT '项目地址', - `project_overview` TEXT DEFAULT NULL COMMENT '工程概况', - `construction_unit` VARCHAR(255) DEFAULT NULL COMMENT '建设单位', - `bid_opening_date` DATE DEFAULT NULL COMMENT '开标日期', - `business_model` VARCHAR(100) DEFAULT NULL COMMENT '经营模式', - `control_price` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '招标控制价(万元)', - `final_quote` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '最终报价(万元)', - `bidding_result` VARCHAR(16) NOT NULL COMMENT '投标结果', - `bid_record_link` VARCHAR(500) DEFAULT NULL COMMENT '开标记录链接', - `analysis_summary` TEXT DEFAULT NULL COMMENT '投标分析与总结', - `final_quote_yuan` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '最终报价(元)', - `final_quote_chinese` VARCHAR(255) DEFAULT NULL COMMENT '最终报价(大写)', - `file_id` varchar(1024) NULL COMMENT '文件ID', - `remark` TEXT null COMMENT '备注', - `audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态', - `create_by` bigint NULL COMMENT '创建者', - `update_by` bigint NULL COMMENT '更新者', - `create_dept` bigint null comment '创建部门', - `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - PRIMARY KEY (`id`) -) COMMENT ='标后分析'; - -drop table if exists xzd_bidding_unit_ranking; -CREATE TABLE `xzd_bidding_unit_ranking` -( - `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `bid_analysis_id` BIGINT NOT NULL COMMENT '标后分析ID', - `bidding_unit_name` VARCHAR(255) DEFAULT NULL COMMENT '参与投标单位', - `bid_price` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '投标报价(万元)', - `ranking` INT NOT NULL COMMENT '排名', - `remark` TEXT null COMMENT '备注', - PRIMARY KEY (`id`), - INDEX `idx_bid_analysis_id` (`bid_analysis_id`) -) COMMENT ='标后分析-投标单位排名';