diff --git a/exam_paper_1742961626351.pdf b/exam_paper_1742961626351.pdf deleted file mode 100644 index 980ebcf..0000000 Binary files a/exam_paper_1742961626351.pdf and /dev/null differ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectController.java index 2c97b9e..4de5f2f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zbf/AppZbfProjectController.java @@ -45,6 +45,14 @@ public class AppZbfProjectController extends BaseController { return AjaxResult.success(iZbfProjectService.add(dto)); } + @ApiOperation("总包方编辑项目") + @Log(title = "总包方编辑项目", businessType = BusinessType.UPDATE) + @RepeatSubmit + @PutMapping() + public AjaxResult edit(@Validated @RequestBody ZbfProjectAddDTO dto) { + return AjaxResult.success(iZbfProjectService.edit(dto)); + } + @ApiOperation("总包方查询我的项目列表") @GetMapping("/list") public TableDataInfo list(@Validated ZbfProjectListDTO dto) { diff --git a/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsUserServiceImpl.java index 31477c6..2cda89c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/fbs/service/impl/FbsUserServiceImpl.java @@ -142,6 +142,7 @@ public class FbsUserServiceImpl extends ServicePlusImpl companyService.save(company); FbsUser fbsUser = selectUserByUserId(SecurityUtils.getAppUserId()); fbsUser.setCompanyId(company.getId()); + fbsUser.setUsername(company.getCompanyName()); updateById(fbsUser); return company.getId(); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectAddDTO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectAddDTO.java index 86ec0ba..e322278 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectAddDTO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectAddDTO.java @@ -18,6 +18,9 @@ import java.util.List; @ApiModel("总包方项目新增视图对象") public class ZbfProjectAddDTO { + @ApiModelProperty("主键") + private Long id; + @ApiModelProperty("单位名称") private String unitName; diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectSectionAddDTO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectSectionAddDTO.java index be1d36b..5abd970 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectSectionAddDTO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectSectionAddDTO.java @@ -18,7 +18,10 @@ import java.util.List; @ApiModel("总包方项目标段新增视图对象") public class ZbfProjectSectionAddDTO { - @ApiModelProperty("标段名称") + @ApiModelProperty("主键") + private Long id; + + @ApiModelProperty("标段名称") private String sectionName; @ApiModelProperty("标段描述") diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectSubcontractingAddDTO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectSubcontractingAddDTO.java index 8376c44..343a717 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectSubcontractingAddDTO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/dto/ZbfProjectSubcontractingAddDTO.java @@ -18,8 +18,10 @@ import java.math.BigDecimal; @ApiModel("总包方项目分包新增视图对象") public class ZbfProjectSubcontractingAddDTO { + @ApiModelProperty("主键") + private Long id; - @ApiModelProperty("分包主题") + @ApiModelProperty("分包主题") private String subName; @ApiModelProperty("分包描述") diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailVO.java index 0d2e013..bdee448 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectDetailVO.java @@ -23,6 +23,15 @@ public class ZbfProjectDetailVO { @ApiModelProperty("项目图片") private String projectImg; + @ApiModelProperty("联系人") + private String contactPerson; + + @ApiModelProperty("联系电话") + private String contactPhone; + + @ApiModelProperty("统一社会信用代码") + private String creditCode; + @ApiModelProperty("项目状态(0-未开工,1-已开工,2已竣工,3已停工)") private String projectStatus; diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSubcontractingDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSubcontractingDetailVO.java index 9bbe003..42a154f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSubcontractingDetailVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/domain/vo/ZbfProjectSubcontractingDetailVO.java @@ -1,5 +1,6 @@ package com.ruoyi.zbf.domain.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -45,6 +46,7 @@ public class ZbfProjectSubcontractingDetailVO { private String qualification; @ApiModelProperty("分包商用户ID") + @JsonFormat(shape = JsonFormat.Shape.STRING) private Long userId; @ApiModelProperty("备注") diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectService.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectService.java index 75dae4f..86c5383 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectService.java @@ -134,6 +134,11 @@ public interface IZbfProjectService extends IServicePlus { */ Boolean add(ZbfProjectAddDTO dto); + /** + * 总包方编辑项目 + */ + Boolean edit(ZbfProjectAddDTO dto); + /** * 总包方查询我的项目列表 */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectSubcontractingApplyService.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectSubcontractingApplyService.java index 997e17a..abab426 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectSubcontractingApplyService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/IZbfProjectSubcontractingApplyService.java @@ -70,4 +70,8 @@ public interface IZbfProjectSubcontractingApplyService extends IServicePlus queryByProjectId(Long projectId); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectServiceImpl.java index eefc585..4d1f79f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectServiceImpl.java @@ -17,6 +17,7 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.ProjectStatus; import com.ruoyi.common.enums.RecruitApplyStatus; import com.ruoyi.common.enums.SubcontractingApplyStatus; +import com.ruoyi.common.exception.BaseException; import com.ruoyi.common.util.DataUtil; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.SecurityUtils; @@ -584,17 +585,17 @@ public class ZbfProjectServiceImpl extends ServicePlusImpl addList = new ArrayList<>(); for (ZbfProjectSubcontractingAddDTO sub : section.getSubList()) { - ZbfProjectSubcontracting projectSubcontracting = BeanUtil.copyProperties(sub, ZbfProjectSubcontracting.class); + ZbfProjectSubcontracting projectSubcontracting = BeanUtil.copyProperties(sub, ZbfProjectSubcontracting.class,"id"); projectSubcontracting.setProjectId(project.getId()); projectSubcontracting.setSectionId(projectSection.getId()); addList.add(projectSubcontracting); @@ -604,6 +605,85 @@ public class ZbfProjectServiceImpl extends ServicePlusImpl applyList = zbfProjectSubcontractingApplyService.queryByProjectId(dto.getId()); + Set sectionIds = applyList.stream().map(ZbfProjectSubcontractingApply::getSectionId).collect(Collectors.toSet()); + Set subIds = applyList.stream().map(ZbfProjectSubcontractingApply::getSubId).collect(Collectors.toSet()); + + Set sectionUpdateIds = new HashSet<>(); + Set sectionAddIds = new HashSet<>(); + List projectSectionUpdateList = new ArrayList<>(); + + Set subUpdateIds = new HashSet<>(); + List projectSubAddList = new ArrayList<>(); + List projectSubUpdateList = new ArrayList<>(); + + for (ZbfProjectSectionAddDTO section : dto.getSectionList()) { + ZbfProjectSection projectSection = BeanUtil.copyProperties(section, ZbfProjectSection.class); + projectSection.setProjectId(dto.getId()); + if (section.getId() == null){ + zbfProjectSectionService.save(projectSection); + sectionAddIds.add(projectSection.getId()); + }else { + projectSectionUpdateList.add(projectSection); + sectionUpdateIds.add(section.getId()); + } + for (ZbfProjectSubcontractingAddDTO sub : section.getSubList()) { + ZbfProjectSubcontracting projectSubcontracting = BeanUtil.copyProperties(sub, ZbfProjectSubcontracting.class,"id"); + projectSubcontracting.setProjectId(dto.getId()); + projectSubcontracting.setSectionId(projectSection.getId()); + if(sub.getId() == null){ + projectSubAddList.add(projectSubcontracting); + }else { + projectSubUpdateList.add(projectSubcontracting); + subUpdateIds.add(sub.getId()); + } + } + } + + if(!sectionUpdateIds.containsAll(sectionIds)){ + throw new BaseException("不能删除包含存在申请的分包的标段"); + } + if(!subUpdateIds.containsAll(subIds)){ + throw new BaseException("不能删除存在申请的分包"); + } + //更新项目 + ZbfProject project = BeanUtil.copyProperties(dto, ZbfProject.class); + boolean update = updateById(project); + //更新标段 + if(CollectionUtil.isNotEmpty(projectSectionUpdateList)){ + zbfProjectSectionService.updateBatchById(projectSectionUpdateList); + } + //更新分包 + if(CollectionUtil.isNotEmpty(projectSubUpdateList)){ + zbfProjectSubcontractingService.updateBatchById(projectSubUpdateList); + } + //新增分包 + if(CollectionUtil.isNotEmpty(projectSubAddList)){ + zbfProjectSubcontractingService.saveBatch(projectSubAddList); + Set subAddIds = projectSubAddList.stream().map(ZbfProjectSubcontracting::getId).collect(Collectors.toSet()); + subUpdateIds.addAll(subAddIds); + } + + //删除标段 + zbfProjectSectionService.remove(Wrappers.lambdaQuery() + .eq(ZbfProjectSection::getProjectId, dto.getId()) + .notIn(ZbfProjectSection::getId, sectionUpdateIds.addAll(sectionAddIds)) + ); + //删除分包 + zbfProjectSubcontractingService.remove(Wrappers.lambdaQuery() + .eq(ZbfProjectSubcontracting::getProjectId, dto.getId()) + .notIn(ZbfProjectSubcontracting::getId, subUpdateIds) + ); + + return update; + } + @Override public TableDataInfo queryZbfList(ZbfProjectListDTO dto) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectSubcontractingApplyServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectSubcontractingApplyServiceImpl.java index 3abc751..04c9c5c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectSubcontractingApplyServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfProjectSubcontractingApplyServiceImpl.java @@ -261,4 +261,11 @@ public class ZbfProjectSubcontractingApplyServiceImpl extends ServicePlusImpl list = baseMapper.selectList(wrapper); return CollectionUtil.getFirst(list); } + + @Override + public List queryByProjectId(Long projectId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ZbfProjectSubcontractingApply::getProjectId, projectId); + return baseMapper.selectList(wrapper); + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfUserServiceImpl.java index d378f2e..c980e25 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/zbf/service/impl/ZbfUserServiceImpl.java @@ -144,6 +144,7 @@ public class ZbfUserServiceImpl extends ServicePlusImpl companyService.save(company); ZbfUser zbfUser = selectUserByUserId(SecurityUtils.getAppUserId()); zbfUser.setCompanyId(company.getId()); + zbfUser.setUsername(company.getCompanyName()); updateById(zbfUser); return company.getId(); } diff --git a/ruoyi-system/src/main/resources/mapper/zbf/ZbfProjectSubcontractingMapper.xml b/ruoyi-system/src/main/resources/mapper/zbf/ZbfProjectSubcontractingMapper.xml index 1c21eb5..0183ecc 100644 --- a/ruoyi-system/src/main/resources/mapper/zbf/ZbfProjectSubcontractingMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/zbf/ZbfProjectSubcontractingMapper.xml @@ -22,7 +22,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"