From 98866341a90ddbc5b961f6205bc68c53918b5b0f Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Fri, 18 Apr 2025 16:04:13 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E9=83=A8=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/controller/ProDepartController.java | 40 +++++++++++++++---- .../base/basic/domain/vo/ProDepartVo.java | 40 +++++++++++++------ .../base/basic/service/ProDepartService.java | 4 +- .../service/impl/ProDepartServiceImpl.java | 40 ++++--------------- .../smartsite/basic/ProDepartMapper.xml | 34 +++++++--------- 5 files changed, 84 insertions(+), 74 deletions(-) diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/controller/ProDepartController.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/controller/ProDepartController.java index 5346733..fc2006f 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/controller/ProDepartController.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/controller/ProDepartController.java @@ -1,8 +1,14 @@ package com.bonus.base.basic.controller; +import com.bonus.base.basic.domain.BmProject; import com.bonus.base.basic.domain.vo.ProDepartVo; +import com.bonus.base.basic.domain.vo.UnitVo; import com.bonus.base.basic.service.ProDepartService; +import com.bonus.base.common.annotation.PreventRepeatSubmit; +import com.bonus.common.core.utils.poi.ExcelUtil; +import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.core.web.page.TableDataInfo; import com.bonus.common.log.annotation.SysLog; import com.bonus.common.log.enums.OperaType; import com.bonus.common.security.annotation.RequiresPermissions; @@ -11,6 +17,8 @@ import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * @className:ProDepartController @@ -22,23 +30,39 @@ import javax.annotation.Resource; @Api(tags = "项目部") @RestController @RequestMapping("/depart/") -public class ProDepartController { +public class ProDepartController extends BaseController { @Resource(name = "ProDepartService") private ProDepartService service; @ApiOperation(value = "查询项目部") // @PreventRepeatSubmit -// @RequiresPermissions("basic:depart:list") + @RequiresPermissions("basic:depart:list") @SysLog(title = "项目部管理", businessType = OperaType.INSERT, logType = 1,module = "项目部管理->查询项目部") @GetMapping("getDeparts") - public AjaxResult getDeparts(ProDepartVo vo) { - return service.getDeparts(vo); + public TableDataInfo getDeparts(ProDepartVo vo) { + startPage(); + List list = service.getDeparts(vo); + return getDataTable(list); + } + + @ApiOperation(value = "导出项目部") + @PreventRepeatSubmit + @RequiresPermissions("basic:depart:export") + @SysLog(title = "项目部管理", businessType = OperaType.EXPORT, logType = 1,module = "项目部管理->导出项目部") + @PostMapping("/export") + public void export(HttpServletResponse response, ProDepartVo vo) { + List list = service.getDeparts(vo); + for (int i = 0; i < list.size(); i++) { + list.get(i).setSerialNumber(i + 1); + } + ExcelUtil util = new ExcelUtil(ProDepartVo.class); + util.exportExcel(response, list, "项目部管理数据"); } @ApiOperation(value = "新增项目部") // @PreventRepeatSubmit -// @RequiresPermissions("basic:depart:add") + @RequiresPermissions("basic:depart:add") @SysLog(title = "项目部管理", businessType = OperaType.INSERT, logType = 1,module = "项目部管理->新增单位") @PostMapping("addDepart") public AjaxResult addDepart(@RequestBody ProDepartVo vo) { @@ -53,7 +77,7 @@ public class ProDepartController { @ApiOperation(value = "修改项目部") // @PreventRepeatSubmit -// @RequiresPermissions("basic:depart:edit") + @RequiresPermissions("basic:depart:edit") @SysLog(title = "项目部管理", businessType = OperaType.UPDATE, logType = 1,module = "项目部管理->修改项目部") @PostMapping("editDepart") public AjaxResult editDepart(@RequestBody ProDepartVo vo) { @@ -62,7 +86,7 @@ public class ProDepartController { @ApiOperation(value = "删除项目部") // @PreventRepeatSubmit -// @RequiresPermissions("basic:depart:del") + @RequiresPermissions("basic:depart:del") @SysLog(title = "项目部管理", businessType = OperaType.DELETE, logType = 1,module = "项目部管理->删除项目部") @PostMapping("delDepart") public AjaxResult delDepart(@RequestBody ProDepartVo vo) { @@ -71,7 +95,7 @@ public class ProDepartController { @ApiOperation(value = "设置项目部状态") // @PreventRepeatSubmit -// @RequiresPermissions("basic:depart:editStatus") + @RequiresPermissions("basic:depart:editStatus") @SysLog(title = "项目部管理", businessType = OperaType.UPDATE, logType = 1,module = "项目部管理->设置项目部状态") @PostMapping("editDepartStatus") public AjaxResult editDepartStatus(@RequestBody ProDepartVo vo) { diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/domain/vo/ProDepartVo.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/domain/vo/ProDepartVo.java index 16614dc..21cd020 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/domain/vo/ProDepartVo.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/domain/vo/ProDepartVo.java @@ -1,5 +1,6 @@ package com.bonus.base.basic.domain.vo; +import com.bonus.common.core.annotation.Excel; import com.bonus.common.security.utils.SecurityUtils; import com.bonus.system.api.model.LoginUser; import com.fasterxml.jackson.annotation.JsonFormat; @@ -31,13 +32,16 @@ public class ProDepartVo { @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) private String keyWord; + /** + * 序号 + */ + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + @Excel(name = "序号") + private int serialNumber; + @NotNull(message = "id不能为空", groups = {Edit.class, Del.class, Use.class}) private Long id; - private String associationId; - - private String parentId; - /** * 分公司id */ @@ -47,6 +51,7 @@ public class ProDepartVo { /** * 分公司名称 * */ + @Excel(name = "分公司名称") private String branchCompanyName; /** @@ -54,6 +59,7 @@ public class ProDepartVo { */ @NotBlank(message = "项目部名称不能为空", groups = {Add.class, Edit.class}) @Length(max = 128, message = "项目部名称字符长度不能超过128", groups = {Add.class, Edit.class}) + @Excel(name = "项目部名称") private String departName; /** @@ -62,10 +68,23 @@ public class ProDepartVo { @Pattern(regexp = "[01]", message = "只允许输入0或1") private String useStatus; + /** + * 状态名称 + */ + @Excel(name = "状态") + private String useStatusName; + + /** + * 标段工程数量 + * */ + @Excel(name = "标段工程数量") + private int bidNum; + /** * 备注 */ @Length(max = 255, message = "备注字符长度不能超过255", groups = {Add.class, Edit.class}) + @Excel(name = "备注") private String remark; @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) @@ -73,20 +92,17 @@ public class ProDepartVo { @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) private Long updateUserId = Optional.ofNullable(SecurityUtils.getUserId()).orElse(0L); - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - private Date updateTime; - /** * 更新人员 * */ + @Excel(name = "更新人员") private String updateUserName; - /** - * 标段工程数量 - * */ - private int bidNum; + @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + - private List children; /** * 新增条件限制 diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/service/ProDepartService.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/service/ProDepartService.java index 33ba131..a06ac94 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/service/ProDepartService.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/service/ProDepartService.java @@ -3,6 +3,8 @@ package com.bonus.base.basic.service; import com.bonus.base.basic.domain.vo.ProDepartVo; import com.bonus.common.core.web.domain.AjaxResult; +import java.util.List; + /** * @className:ProDepartService * @author:cwchen @@ -63,5 +65,5 @@ public interface ProDepartService { * @author cwchen * @date 2025/4/17 15:48 */ - AjaxResult getDeparts(ProDepartVo vo); + List getDeparts(ProDepartVo vo); } diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/service/impl/ProDepartServiceImpl.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/service/impl/ProDepartServiceImpl.java index fd4e05e..5d70457 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/service/impl/ProDepartServiceImpl.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/service/impl/ProDepartServiceImpl.java @@ -121,39 +121,13 @@ public class ProDepartServiceImpl implements ProDepartService { } @Override - public AjaxResult getDeparts(ProDepartVo vo) { - return AjaxResult.success(buildTreeWithMap(mapper.getDeparts(vo))); - } - - /** - * 构建树形数据 - * @param nodes - * @return List - * @author cwchen - * @date 2025/4/17 15:51 - */ - public List buildTreeWithMap(List nodes) { - List tree = new ArrayList<>(); - Map nodeMap = new HashMap<>(); - // 第一次遍历:将所有节点存入map - for (ProDepartVo node : nodes) { - nodeMap.put(node.getAssociationId(), node); + public List getDeparts(ProDepartVo vo) { + try { + List list = Optional.ofNullable(mapper.getDeparts(vo)).orElseGet(ArrayList::new); + return list; + } catch (Exception e) { + log.error(e.toString(), e); + return new ArrayList(); } - // 第二次遍历:建立父子关系 - for (ProDepartVo node : nodes) { - String parentId = node.getParentId(); - if (parentId == null || parentId.isEmpty()) { - tree.add(node); - } else { - ProDepartVo parent = nodeMap.get(parentId); - if (parent != null) { - if (parent.getChildren() == null) { - parent.setChildren(new ArrayList<>()); - } - parent.getChildren().add(node); - } - } - } - return tree; } } diff --git a/bonus-modules/bonus-base/src/main/resources/mapper/smartsite/basic/ProDepartMapper.xml b/bonus-modules/bonus-base/src/main/resources/mapper/smartsite/basic/ProDepartMapper.xml index 17c93c0..feccd04 100644 --- a/bonus-modules/bonus-base/src/main/resources/mapper/smartsite/basic/ProDepartMapper.xml +++ b/bonus-modules/bonus-base/src/main/resources/mapper/smartsite/basic/ProDepartMapper.xml @@ -64,30 +64,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" \ No newline at end of file