From 484999cd0764a71dd3d89788181b6457c340679f Mon Sep 17 00:00:00 2001 From: gxwebsoft Date: Fri, 9 Jun 2023 12:30:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TowerProjectController.java | 50 +++++++++++++++++-- .../gxwebsoft/tower/entity/TowerProject.java | 12 ++++- .../tower/entity/TowerProjectUser.java | 4 ++ .../mapper/xml/TowerProjectUserMapper.xml | 3 +- .../tower/mapper/xml/TowerWarehouseMapper.xml | 6 +-- .../tower/param/TowerProjectParam.java | 24 ++++++++- 6 files changed, 87 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/gxwebsoft/tower/controller/TowerProjectController.java b/src/main/java/com/gxwebsoft/tower/controller/TowerProjectController.java index 8c5f1b4..6bfe7bf 100644 --- a/src/main/java/com/gxwebsoft/tower/controller/TowerProjectController.java +++ b/src/main/java/com/gxwebsoft/tower/controller/TowerProjectController.java @@ -8,12 +8,17 @@ import com.gxwebsoft.common.core.web.PageResult; import com.gxwebsoft.common.system.entity.User; import com.gxwebsoft.tower.entity.TowerProject; import com.gxwebsoft.tower.entity.TowerProjectOrder; +import com.gxwebsoft.tower.entity.TowerProjectPlace; +import com.gxwebsoft.tower.entity.TowerProjectUser; import com.gxwebsoft.tower.param.TowerProjectParam; import com.gxwebsoft.tower.service.TowerProjectOrderService; +import com.gxwebsoft.tower.service.TowerProjectPlaceService; import com.gxwebsoft.tower.service.TowerProjectService; +import com.gxwebsoft.tower.service.TowerProjectUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -34,6 +39,10 @@ public class TowerProjectController extends BaseController { private TowerProjectService towerProjectService; @Resource private TowerProjectOrderService towerProjectOrderService; + @Resource + private TowerProjectUserService towerProjectUserService; + @Resource + private TowerProjectPlaceService towerProjectPlaceService; @PreAuthorize("hasAuthority('tower:towerProject:list')") @ApiOperation("分页查询项目管理") @@ -60,6 +69,7 @@ public class TowerProjectController extends BaseController { } @PreAuthorize("hasAuthority('tower:towerProject:save')") + @Transactional(rollbackFor = {Exception.class}) @ApiOperation("添加项目管理") @PostMapping() public ApiResult save(@RequestBody TowerProject towerProject) { @@ -68,29 +78,59 @@ public class TowerProjectController extends BaseController { if (loginUser != null) { towerProject.setUserId(loginUser.getUserId()); } + System.out.println("towerProject = " + towerProject.getPlaces2()); if (towerProjectService.save(towerProject)) { + final Integer projectId = towerProject.getProjectId(); + // 批量添加项目成员 + if (!towerProject.getUsers().isEmpty()) { + final Set users = towerProject.getUsers(); + users.forEach(d->{ + d.setProjectId(projectId); + }); + towerProjectUserService.saveBatch(users); + } + // 批量添加项目订单 if (!towerProject.getOrders().isEmpty()) { final Set orders = towerProject.getOrders(); orders.forEach(d->{ - d.setProjectId(towerProject.getProjectId()); + d.setProjectId(projectId); }); towerProjectOrderService.saveBatch(orders); } + // 批量添加检查部位配置 + if (!towerProject.getPlaces1().isEmpty()) { + final Set places1 = towerProject.getPlaces1(); + places1.forEach(d->{ + d.setProjectId(projectId); + }); + towerProjectPlaceService.saveBatch(places1); + } + // 批量添加保养部位配置 + if (!towerProject.getPlaces2().isEmpty()) { + final Set places2 = towerProject.getPlaces2(); + places2.forEach(d->{ + d.setProjectId(projectId); + }); + towerProjectPlaceService.saveBatch(places2); + } return success("添加成功"); } return fail("添加失败"); } @PreAuthorize("hasAuthority('tower:towerProject:update')") + @Transactional(rollbackFor = {Exception.class}) @ApiOperation("修改项目管理") @PutMapping() public ApiResult update(@RequestBody TowerProject towerProject) { if (towerProjectService.updateById(towerProject)) { - if (!towerProject.getOrders().isEmpty()) { - final Set orders = towerProject.getOrders(); - System.out.println("orders = " + orders); + // 批量修改项目成员 + towerProjectUserService.saveOrUpdateBatch(towerProject.getUsers()); + // 批量修改项目订单 towerProjectOrderService.saveOrUpdateBatch(towerProject.getOrders()); - } + // 批量修改检查/保养部位配置 + towerProjectPlaceService.saveOrUpdateBatch(towerProject.getPlaces1()); + towerProjectPlaceService.saveOrUpdateBatch(towerProject.getPlaces2()); return success("修改成功"); } return fail("修改失败"); diff --git a/src/main/java/com/gxwebsoft/tower/entity/TowerProject.java b/src/main/java/com/gxwebsoft/tower/entity/TowerProject.java index 10777a6..ddfb3e6 100644 --- a/src/main/java/com/gxwebsoft/tower/entity/TowerProject.java +++ b/src/main/java/com/gxwebsoft/tower/entity/TowerProject.java @@ -111,12 +111,20 @@ public class TowerProject implements Serializable { @ApiModelProperty(value = "修改时间") private Date updateTime; + @ApiModelProperty(value = "项目成员") + @TableField(exist = false) + private Set users; + @ApiModelProperty(value = "合同预定设备清单") @TableField(exist = false) private Set orders; - @ApiModelProperty(value = "检查/保养部位配置") + @ApiModelProperty(value = "检查部位配置") + @TableField(exist = false) + private Set places1; + + @ApiModelProperty(value = "保养部位配置") @TableField(exist = false) - private Set places; + private Set places2; } diff --git a/src/main/java/com/gxwebsoft/tower/entity/TowerProjectUser.java b/src/main/java/com/gxwebsoft/tower/entity/TowerProjectUser.java index af129f0..129b289 100644 --- a/src/main/java/com/gxwebsoft/tower/entity/TowerProjectUser.java +++ b/src/main/java/com/gxwebsoft/tower/entity/TowerProjectUser.java @@ -65,4 +65,8 @@ public class TowerProjectUser implements Serializable { @TableField(exist = false) private String avatar; + @ApiModelProperty(value = "所在部门") + @TableField(exist = false) + private String organizationName; + } diff --git a/src/main/java/com/gxwebsoft/tower/mapper/xml/TowerProjectUserMapper.xml b/src/main/java/com/gxwebsoft/tower/mapper/xml/TowerProjectUserMapper.xml index 177a53f..d74c770 100644 --- a/src/main/java/com/gxwebsoft/tower/mapper/xml/TowerProjectUserMapper.xml +++ b/src/main/java/com/gxwebsoft/tower/mapper/xml/TowerProjectUserMapper.xml @@ -4,9 +4,10 @@ - SELECT a.*, b.nickname,b.email,b.phone,b.avatar + SELECT a.*, b.nickname,b.email,b.phone,b.avatar,c.organization_name FROM tower_project_user a LEFT JOIN sys_user b ON a.user_id = b.user_id + LEFT JOIN sys_organization c ON b.organization_id = c.organization_id AND a.id = #{param.id} diff --git a/src/main/java/com/gxwebsoft/tower/mapper/xml/TowerWarehouseMapper.xml b/src/main/java/com/gxwebsoft/tower/mapper/xml/TowerWarehouseMapper.xml index c2ecbef..08b47b3 100644 --- a/src/main/java/com/gxwebsoft/tower/mapper/xml/TowerWarehouseMapper.xml +++ b/src/main/java/com/gxwebsoft/tower/mapper/xml/TowerWarehouseMapper.xml @@ -49,9 +49,9 @@ AND a.comments LIKE CONCAT('%', #{param.comments}, '%') - - - + + AND a.username = #{param.username} + AND a.deleted = #{param.deleted} diff --git a/src/main/java/com/gxwebsoft/tower/param/TowerProjectParam.java b/src/main/java/com/gxwebsoft/tower/param/TowerProjectParam.java index 9509d27..46a8268 100644 --- a/src/main/java/com/gxwebsoft/tower/param/TowerProjectParam.java +++ b/src/main/java/com/gxwebsoft/tower/param/TowerProjectParam.java @@ -1,14 +1,20 @@ package com.gxwebsoft.tower.param; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonInclude; import com.gxwebsoft.common.core.annotation.QueryField; import com.gxwebsoft.common.core.annotation.QueryType; import com.gxwebsoft.common.core.web.BaseParam; -import com.fasterxml.jackson.annotation.JsonInclude; +import com.gxwebsoft.tower.entity.TowerProjectOrder; +import com.gxwebsoft.tower.entity.TowerProjectPlace; +import com.gxwebsoft.tower.entity.TowerProjectUser; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.Set; + /** * 项目管理查询参数 * @@ -103,4 +109,20 @@ public class TowerProjectParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer deleted; + @ApiModelProperty(value = "项目成员") + @TableField(exist = false) + private Set users; + + @ApiModelProperty(value = "合同预定设备清单") + @TableField(exist = false) + private Set orders; + + @ApiModelProperty(value = "检查部位配置") + @TableField(exist = false) + private Set places1; + + @ApiModelProperty(value = "保养部位配置") + @TableField(exist = false) + private Set places2; + }