From 786ee0e73509f54805520e911df93841e9148166 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期日, 28 四月 2024 17:05:56 +0800 Subject: [PATCH] 点位优化 --- ycl-server/src/main/java/com/ycl/system/controller/SysDeptController.java | 8 + ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java | 8 ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java | 20 ++ ycl-pojo/src/main/java/com/ycl/platform/base/Cascader.java | 30 ++++ ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java | 13 + ycl-pojo/src/main/java/com/ycl/platform/base/BaseSelect.java | 3 ycl-server/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java | 76 ++++++++-- ycl-pojo/src/main/java/com/ycl/platform/base/AbsForm.java | 3 ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml | 35 +++++ ycl-server/src/main/java/com/ycl/system/service/ISysDeptService.java | 37 +++-- ycl-pojo/src/main/java/com/ycl/platform/base/AbsVo.java | 1 ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java | 4 ycl-server/src/main/java/com/ycl/system/mapper/SysDeptMapper.java | 44 ++++-- ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java | 46 ++--- ycl-server/src/main/resources/mapper/system/SysDeptMapper.xml | 52 +++++-- 15 files changed, 271 insertions(+), 109 deletions(-) diff --git a/ycl-pojo/src/main/java/com/ycl/platform/base/AbsForm.java b/ycl-pojo/src/main/java/com/ycl/platform/base/AbsForm.java index d22ecf2..643708e 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/base/AbsForm.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/base/AbsForm.java @@ -3,6 +3,7 @@ import com.ycl.system.domain.group.Update; import io.swagger.annotations.ApiModelProperty; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Data; /** @@ -15,7 +16,7 @@ public abstract class AbsForm { @ApiModelProperty(value = "id,淇敼蹇呬紶", required = false) - @NotBlank(message = "璇烽�夋嫨鏁版嵁", groups = {Update.class}) + @NotNull(message = "璇烽�夋嫨鏁版嵁", groups = {Update.class}) private Integer id; } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/base/AbsVo.java b/ycl-pojo/src/main/java/com/ycl/platform/base/AbsVo.java index dada523..8824fd9 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/base/AbsVo.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/base/AbsVo.java @@ -4,6 +4,7 @@ import lombok.Data; import java.util.Date; +import java.util.List; /** * 鍩虹鍝嶅簲 diff --git a/ycl-pojo/src/main/java/com/ycl/platform/base/BaseSelect.java b/ycl-pojo/src/main/java/com/ycl/platform/base/BaseSelect.java index 94c3200..3812972 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/base/BaseSelect.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/base/BaseSelect.java @@ -15,8 +15,9 @@ private Integer id; /** - * 鍊� + * 灞曠ず鍐呭 */ private String value; + } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/base/Cascader.java b/ycl-pojo/src/main/java/com/ycl/platform/base/Cascader.java new file mode 100644 index 0000000..3641c24 --- /dev/null +++ b/ycl-pojo/src/main/java/com/ycl/platform/base/Cascader.java @@ -0,0 +1,30 @@ +package com.ycl.platform.base; + +import lombok.Data; + +import java.util.List; + +/** + * 绾ц仈閫夋嫨鏁版嵁鏍煎紡 + * + * @author锛歺p + * @date锛�2024/4/28 14:37 + */ +@Data +public class Cascader { + + /** + * 閫変腑 + */ + private Long value; + + /** + * 鏄剧ず + */ + private String label; + + private Long parentId; + + private List<Cascader> Children; + +} diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java index ba79866..e041929 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java @@ -39,7 +39,7 @@ @ApiModelProperty("杩愮淮鍗曚綅") @TableField(value = "unit_id", updateStrategy = FieldStrategy.IGNORED) - private Integer unitId; + private Long unitId; @ApiModelProperty("杩愮淮鐘舵��") @TableField("status") @@ -48,15 +48,17 @@ @ApiModelProperty("澶囨敞") @TableField("remark") private String remark; + @ApiModelProperty("杩愮淮绫诲瀷") @TableField("category") private Short category; + @ApiModelProperty("涓婃姤閮ㄩ棬") @TableField("dept_id") private Long deptId; - @TableField("point_detail") - private String pointDetail; + @TableField("point_tag") + private String pointTag; } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java index 7b8274d..b5725f2 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java @@ -4,6 +4,7 @@ import com.ycl.system.domain.group.Add; import com.ycl.platform.base.AbsForm; import com.ycl.platform.domain.entity.YwPoint; +import jakarta.validation.constraints.NotEmpty; import org.springframework.beans.BeanUtils; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; @@ -14,6 +15,7 @@ import lombok.experimental.Accessors; import java.time.LocalDateTime; +import java.util.List; /** * 杩愮淮鐐逛綅琛ㄥ崟 @@ -42,16 +44,22 @@ @ApiModelProperty("杩愮淮鍗曚綅") private Integer unitId; -// @NotBlank(message = "杩愮淮鐘舵�佷笉鑳戒负绌�", groups = {Add.class, Update.class}) + @NotNull(message = "鐩戠閮ㄩ棬涓嶈兘涓虹┖", groups = {Add.class, Update.class}) + @ApiModelProperty("鐩戠閮ㄩ棬") + private Long deptId; + + @NotEmpty(message = "鐐逛綅鏍囩涓嶈兘涓虹┖", groups = {Add.class, Update.class}) + @ApiModelProperty("鐐逛綅鏍囩") + private List<String> pointTag; + @ApiModelProperty("杩愮淮鐘舵��") private String status; + @ApiModelProperty("澶囨敞") + private String remark; - private String pointDetail; - -// @NotBlank(message = "澶囨敞涓嶈兘涓虹┖", groups = {Add.class, Update.class}) -// @ApiModelProperty("澶囨敞") -// private String remark; + @ApiModelProperty("绫诲瀷") + private Short category; public static YwPoint getEntityByForm(@NonNull YwPointForm form, YwPoint entity) { if(entity == null) { diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java index 0d38715..a67e7dc 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java @@ -1,6 +1,5 @@ package com.ycl.platform.domain.vo; -import com.baomidou.mybatisplus.annotation.TableField; import com.ycl.platform.base.AbsVo; import com.ycl.platform.domain.entity.YwPoint; @@ -8,8 +7,6 @@ import java.util.List; import org.springframework.lang.NonNull; import org.springframework.beans.BeanUtils; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; @@ -33,7 +30,7 @@ private LocalDateTime endTime; /** 杩愮淮鍗曚綅 */ - private Integer unitId; + private Long unitId; private String unitName; /** 杩愮淮鐘舵�� */ @@ -44,8 +41,14 @@ private Short category; + /** 鐩戠閮ㄩ棬 */ + private Long deptId; + private List<Long> deptIds; private String deptName; - private String pointDetail; + + /** 鐐逛綅鏍囩 */ + private String [] pointTags; + private String pointTagString; public static YwPointVO getVoByEntity(@NonNull YwPoint entity, YwPointVO vo) { if(vo == null) { diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java index 16e18a6..b7a099a 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java @@ -1,8 +1,10 @@ package com.ycl.platform.mapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.ycl.platform.base.BaseSelect; import com.ycl.platform.domain.entity.YwPoint; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ycl.platform.domain.query.YwPointQuery; import com.ycl.platform.domain.vo.YwPointVO; import com.ycl.platform.domain.form.YwPointForm; import java.util.List; @@ -27,4 +29,6 @@ * @return */ List<BaseSelect> selectData(@Param("keyword") String keyword, @Param("unitId") Integer unitId); + + IPage page(IPage<YwPointVO> page, @Param("query") YwPointQuery query); } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java index b297192..6941537 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java @@ -21,6 +21,7 @@ import java.util.List; import com.ycl.system.entity.SysUser; +import com.ycl.system.mapper.SysDeptMapper; import com.ycl.system.service.ISysDeptService; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -48,11 +49,8 @@ @RequiredArgsConstructor public class YwPointServiceImpl extends ServiceImpl<YwPointMapper, YwPoint> implements YwPointService { - private final YwPointMapper ywPointMapper; - private final ISysDeptService deptService; + private final SysDeptMapper sysDeptMapper; private final YwUnitService unitService; - private final YwUnitMapper ywUnitMapper; - private final RegionMapper regionMapper; private final YwPeopleMapper ywPeopleMapper; /** @@ -109,16 +107,12 @@ */ @Override public Result update(YwPointForm form) { - YwPoint entity = baseMapper.selectById(form.getId()); - - // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊 Assert.notNull(entity, "璁板綍涓嶅瓨鍦�"); BeanUtils.copyProperties(form, entity); - if (baseMapper.updateById(entity) > 0) { - return Result.ok("淇敼鎴愬姛"); - } - return Result.error("淇敼澶辫触"); + entity.setPointTag(form.getPointTag().stream().collect(Collectors.joining(","))); + baseMapper.updateById(entity); + return Result.ok("淇敼鎴愬姛"); } /** @@ -154,21 +148,14 @@ */ @Override public Result page(YwPointQuery query) { - - IPage<YwPoint> page = new LambdaQueryChainWrapper<>(baseMapper) - .like(StringUtils.hasText(query.getPointName()), YwPoint::getPointName, query.getPointName()) - .orderByDesc(YwPoint::getCreateTime) - .page(PageUtil.getPage(query, YwPoint.class)); - - List<YwPointVO> vos = page.getRecords().stream() - .map( - entity -> YwPointVO.getVoByEntity(entity, null) - .setDeptName(deptService.selectDeptById(entity.getDeptId()).getDeptName()) - .setUnitName(unitService.getById(entity.getUnitId()).getUnitName()) - ) - .collect(Collectors.toList()); - - return Result.ok().data(vos).total(page.getTotal()); + IPage<YwPointVO> page = PageUtil.getPage(query, YwPointVO.class); + baseMapper.page(page, query); + page.getRecords().stream().forEach(point -> { + if (StringUtils.hasText(point.getPointTagString())) { + point.setPointTags(point.getPointTagString().split(",")); + } + }); + return Result.ok().data(page.getRecords()).total(page.getTotal()); } /** @@ -178,10 +165,15 @@ */ @Override public Result detail(String id) { - YwPoint entity = baseMapper.selectById(id); Assert.notNull(entity, "璁板綍涓嶅瓨鍦�"); YwPointVO vo = YwPointVO.getVoByEntity(entity, null); + if (StringUtils.hasText(entity.getPointTag())) { + vo.setPointTags(entity.getPointTag().split(",")); + } + if (Objects.nonNull(entity.getDeptId())) { + vo.setDeptIds(sysDeptMapper.selectParents(entity.getDeptId())); + } return Result.ok().data(vo); } diff --git a/ycl-server/src/main/java/com/ycl/system/controller/SysDeptController.java b/ycl-server/src/main/java/com/ycl/system/controller/SysDeptController.java index 8771d99..fa070b0 100644 --- a/ycl-server/src/main/java/com/ycl/system/controller/SysDeptController.java +++ b/ycl-server/src/main/java/com/ycl/system/controller/SysDeptController.java @@ -19,7 +19,7 @@ /** * 閮ㄩ棬淇℃伅 - * + * * @author ruoyi */ @RestController @@ -134,4 +134,10 @@ public Result pullList() { return deptService.pullList(); } + + @GetMapping("/cascader") + @ApiOperation(value = "閮ㄩ棬绾ц仈閫夋嫨鏁版嵁", notes = "閮ㄩ棬绾ц仈閫夋嫨鏁版嵁") + public Result cascader() { + return deptService.cascader(); + } } diff --git a/ycl-server/src/main/java/com/ycl/system/mapper/SysDeptMapper.java b/ycl-server/src/main/java/com/ycl/system/mapper/SysDeptMapper.java index 42b54da..effeed2 100644 --- a/ycl-server/src/main/java/com/ycl/system/mapper/SysDeptMapper.java +++ b/ycl-server/src/main/java/com/ycl/system/mapper/SysDeptMapper.java @@ -1,5 +1,6 @@ package com.ycl.system.mapper; +import com.ycl.platform.base.Cascader; import com.ycl.system.entity.SysDept; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -8,7 +9,7 @@ /** * 閮ㄩ棬绠$悊 鏁版嵁灞� - * + * * @author ruoyi */ @Mapper @@ -16,7 +17,7 @@ { /** * 鏌ヨ閮ㄩ棬绠$悊鏁版嵁 - * + * * @param dept 閮ㄩ棬淇℃伅 * @return 閮ㄩ棬淇℃伅闆嗗悎 */ @@ -24,7 +25,7 @@ /** * 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戜俊鎭� - * + * * @param roleId 瑙掕壊ID * @param deptCheckStrictly 閮ㄩ棬鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀� * @return 閫変腑閮ㄩ棬鍒楄〃 @@ -33,7 +34,7 @@ /** * 鏍规嵁閮ㄩ棬ID鏌ヨ淇℃伅 - * + * * @param deptId 閮ㄩ棬ID * @return 閮ㄩ棬淇℃伅 */ @@ -41,7 +42,7 @@ /** * 鏍规嵁ID鏌ヨ鎵�鏈夊瓙閮ㄩ棬 - * + * * @param deptId 閮ㄩ棬ID * @return 閮ㄩ棬鍒楄〃 */ @@ -49,7 +50,7 @@ /** * 鏍规嵁ID鏌ヨ鎵�鏈夊瓙閮ㄩ棬锛堟甯哥姸鎬侊級 - * + * * @param deptId 閮ㄩ棬ID * @return 瀛愰儴闂ㄦ暟 */ @@ -57,7 +58,7 @@ /** * 鏄惁瀛樺湪瀛愯妭鐐� - * + * * @param deptId 閮ㄩ棬ID * @return 缁撴灉 */ @@ -65,7 +66,7 @@ /** * 鏌ヨ閮ㄩ棬鏄惁瀛樺湪鐢ㄦ埛 - * + * * @param deptId 閮ㄩ棬ID * @return 缁撴灉 */ @@ -73,7 +74,7 @@ /** * 鏍¢獙閮ㄩ棬鍚嶇О鏄惁鍞竴 - * + * * @param deptName 閮ㄩ棬鍚嶇О * @param parentId 鐖堕儴闂↖D * @return 缁撴灉 @@ -82,7 +83,7 @@ /** * 鏂板閮ㄩ棬淇℃伅 - * + * * @param dept 閮ㄩ棬淇℃伅 * @return 缁撴灉 */ @@ -90,7 +91,7 @@ /** * 淇敼閮ㄩ棬淇℃伅 - * + * * @param dept 閮ㄩ棬淇℃伅 * @return 缁撴灉 */ @@ -98,14 +99,14 @@ /** * 淇敼鎵�鍦ㄩ儴闂ㄦ甯哥姸鎬� - * + * * @param deptIds 閮ㄩ棬ID缁� */ public void updateDeptStatusNormal(Long[] deptIds); /** * 淇敼瀛愬厓绱犲叧绯� - * + * * @param depts 瀛愬厓绱� * @return 缁撴灉 */ @@ -113,9 +114,24 @@ /** * 鍒犻櫎閮ㄩ棬绠$悊淇℃伅 - * + * * @param deptId 閮ㄩ棬ID * @return 缁撴灉 */ public int deleteDeptById(Long deptId); + + /** + * 绾ц仈鏁版嵁 + * + * @return + */ + List<Cascader> cascader(); + + /** + * 鏌ヨ鑷繁鐨勭埗绫婚儴闂↖D + * + * @param deptId + * @return + */ + List<Long> selectParents(@Param("id") Long deptId); } diff --git a/ycl-server/src/main/java/com/ycl/system/service/ISysDeptService.java b/ycl-server/src/main/java/com/ycl/system/service/ISysDeptService.java index bc79014..ad7deb7 100644 --- a/ycl-server/src/main/java/com/ycl/system/service/ISysDeptService.java +++ b/ycl-server/src/main/java/com/ycl/system/service/ISysDeptService.java @@ -8,14 +8,14 @@ /** * 閮ㄩ棬绠$悊 鏈嶅姟灞� - * + * * @author ruoyi */ public interface ISysDeptService { /** * 鏌ヨ閮ㄩ棬绠$悊鏁版嵁 - * + * * @param dept 閮ㄩ棬淇℃伅 * @return 閮ㄩ棬淇℃伅闆嗗悎 */ @@ -23,7 +23,7 @@ /** * 鏌ヨ閮ㄩ棬鏍戠粨鏋勪俊鎭� - * + * * @param dept 閮ㄩ棬淇℃伅 * @return 閮ㄩ棬鏍戜俊鎭泦鍚� */ @@ -31,7 +31,7 @@ /** * 鏋勫缓鍓嶇鎵�闇�瑕佹爲缁撴瀯 - * + * * @param depts 閮ㄩ棬鍒楄〃 * @return 鏍戠粨鏋勫垪琛� */ @@ -39,7 +39,7 @@ /** * 鏋勫缓鍓嶇鎵�闇�瑕佷笅鎷夋爲缁撴瀯 - * + * * @param depts 閮ㄩ棬鍒楄〃 * @return 涓嬫媺鏍戠粨鏋勫垪琛� */ @@ -47,7 +47,7 @@ /** * 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戜俊鎭� - * + * * @param roleId 瑙掕壊ID * @return 閫変腑閮ㄩ棬鍒楄〃 */ @@ -55,7 +55,7 @@ /** * 鏍规嵁閮ㄩ棬ID鏌ヨ淇℃伅 - * + * * @param deptId 閮ㄩ棬ID * @return 閮ㄩ棬淇℃伅 */ @@ -63,7 +63,7 @@ /** * 鏍规嵁ID鏌ヨ鎵�鏈夊瓙閮ㄩ棬锛堟甯哥姸鎬侊級 - * + * * @param deptId 閮ㄩ棬ID * @return 瀛愰儴闂ㄦ暟 */ @@ -71,7 +71,7 @@ /** * 鏄惁瀛樺湪閮ㄩ棬瀛愯妭鐐� - * + * * @param deptId 閮ㄩ棬ID * @return 缁撴灉 */ @@ -79,7 +79,7 @@ /** * 鏌ヨ閮ㄩ棬鏄惁瀛樺湪鐢ㄦ埛 - * + * * @param deptId 閮ㄩ棬ID * @return 缁撴灉 true 瀛樺湪 false 涓嶅瓨鍦� */ @@ -87,7 +87,7 @@ /** * 鏍¢獙閮ㄩ棬鍚嶇О鏄惁鍞竴 - * + * * @param dept 閮ㄩ棬淇℃伅 * @return 缁撴灉 */ @@ -95,14 +95,14 @@ /** * 鏍¢獙閮ㄩ棬鏄惁鏈夋暟鎹潈闄� - * + * * @param deptId 閮ㄩ棬id */ public void checkDeptDataScope(Long deptId); /** * 鏂板淇濆瓨閮ㄩ棬淇℃伅 - * + * * @param dept 閮ㄩ棬淇℃伅 * @return 缁撴灉 */ @@ -110,7 +110,7 @@ /** * 淇敼淇濆瓨閮ㄩ棬淇℃伅 - * + * * @param dept 閮ㄩ棬淇℃伅 * @return 缁撴灉 */ @@ -118,7 +118,7 @@ /** * 鍒犻櫎閮ㄩ棬绠$悊淇℃伅 - * + * * @param deptId 閮ㄩ棬ID * @return 缁撴灉 */ @@ -134,4 +134,11 @@ * @return */ Result pullList(); + + /** + * 閮ㄩ棬绾ц仈鏁版嵁 + * + * @return + */ + Result cascader(); } diff --git a/ycl-server/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java b/ycl-server/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java index e513424..0025f7a 100644 --- a/ycl-server/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java @@ -3,6 +3,7 @@ import annotation.DataScope; import com.ycl.exception.ServiceException; import com.ycl.platform.base.BaseSelect; +import com.ycl.platform.base.Cascader; import com.ycl.system.Result; import com.ycl.system.domain.TreeSelect; import com.ycl.system.entity.SysDept; @@ -19,14 +20,12 @@ import org.springframework.stereotype.Service; import utils.text.Convert; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** * 閮ㄩ棬绠$悊 鏈嶅姟瀹炵幇 - * + * * @author ruoyi */ @Service @@ -40,7 +39,7 @@ /** * 鏌ヨ閮ㄩ棬绠$悊鏁版嵁 - * + * * @param dept 閮ㄩ棬淇℃伅 * @return 閮ㄩ棬淇℃伅闆嗗悎 */ @@ -53,7 +52,7 @@ /** * 鏌ヨ閮ㄩ棬鏍戠粨鏋勪俊鎭� - * + * * @param dept 閮ㄩ棬淇℃伅 * @return 閮ㄩ棬鏍戜俊鎭泦鍚� */ @@ -66,7 +65,7 @@ /** * 鏋勫缓鍓嶇鎵�闇�瑕佹爲缁撴瀯 - * + * * @param depts 閮ㄩ棬鍒楄〃 * @return 鏍戠粨鏋勫垪琛� */ @@ -93,7 +92,7 @@ /** * 鏋勫缓鍓嶇鎵�闇�瑕佷笅鎷夋爲缁撴瀯 - * + * * @param depts 閮ㄩ棬鍒楄〃 * @return 涓嬫媺鏍戠粨鏋勫垪琛� */ @@ -106,7 +105,7 @@ /** * 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戜俊鎭� - * + * * @param roleId 瑙掕壊ID * @return 閫変腑閮ㄩ棬鍒楄〃 */ @@ -119,7 +118,7 @@ /** * 鏍规嵁閮ㄩ棬ID鏌ヨ淇℃伅 - * + * * @param deptId 閮ㄩ棬ID * @return 閮ㄩ棬淇℃伅 */ @@ -131,7 +130,7 @@ /** * 鏍规嵁ID鏌ヨ鎵�鏈夊瓙閮ㄩ棬锛堟甯哥姸鎬侊級 - * + * * @param deptId 閮ㄩ棬ID * @return 瀛愰儴闂ㄦ暟 */ @@ -143,7 +142,7 @@ /** * 鏄惁瀛樺湪瀛愯妭鐐� - * + * * @param deptId 閮ㄩ棬ID * @return 缁撴灉 */ @@ -156,7 +155,7 @@ /** * 鏌ヨ閮ㄩ棬鏄惁瀛樺湪鐢ㄦ埛 - * + * * @param deptId 閮ㄩ棬ID * @return 缁撴灉 true 瀛樺湪 false 涓嶅瓨鍦� */ @@ -169,7 +168,7 @@ /** * 鏍¢獙閮ㄩ棬鍚嶇О鏄惁鍞竴 - * + * * @param dept 閮ㄩ棬淇℃伅 * @return 缁撴灉 */ @@ -187,7 +186,7 @@ /** * 鏍¢獙閮ㄩ棬鏄惁鏈夋暟鎹潈闄� - * + * * @param deptId 閮ㄩ棬id */ @Override @@ -207,7 +206,7 @@ /** * 鏂板淇濆瓨閮ㄩ棬淇℃伅 - * + * * @param dept 閮ㄩ棬淇℃伅 * @return 缁撴灉 */ @@ -226,7 +225,7 @@ /** * 淇敼淇濆瓨閮ㄩ棬淇℃伅 - * + * * @param dept 閮ㄩ棬淇℃伅 * @return 缁撴灉 */ @@ -254,7 +253,7 @@ /** * 淇敼璇ラ儴闂ㄧ殑鐖剁骇閮ㄩ棬鐘舵�� - * + * * @param dept 褰撳墠閮ㄩ棬 */ private void updateParentDeptStatusNormal(SysDept dept) @@ -266,7 +265,7 @@ /** * 淇敼瀛愬厓绱犲叧绯� - * + * * @param deptId 琚慨鏀圭殑閮ㄩ棬ID * @param newAncestors 鏂扮殑鐖禝D闆嗗悎 * @param oldAncestors 鏃х殑鐖禝D闆嗗悎 @@ -286,7 +285,7 @@ /** * 鍒犻櫎閮ㄩ棬绠$悊淇℃伅 - * + * * @param deptId 閮ㄩ棬ID * @return 缁撴灉 */ @@ -327,6 +326,43 @@ return Result.ok().data(vos); } + @Override + public Result cascader() { + List<Cascader> data = deptMapper.cascader(); + return Result.ok().data(this.buildTree(data)); + } + + public List<Cascader> buildTree(List<Cascader> cascaders) { + // 鍒涘缓涓�涓槧灏勶紝浠arentId涓洪敭锛屽搴旂殑瀛愯妭鐐瑰垪琛ㄤ负鍊� + Map<Long, List<Cascader>> map = new HashMap<>(); + for (Cascader cascader : cascaders) { + Long parentId = cascader.getParentId(); + map.computeIfAbsent(parentId, k -> new ArrayList<>()).add(cascader); + } + + // 閫掑綊鍑芥暟锛岀敤浜庢瀯寤烘爲 + List<Cascader> tree = new ArrayList<>(); + for (Cascader cascader : cascaders) { + if (cascader.getParentId().equals(0L)) { // 鏍硅妭鐐� + tree.add(setChildren(cascader, map)); + } + } + + // 鏇存柊鍘熷鍒楄〃涓烘爲褰㈢粨鏋� + cascaders.clear(); + cascaders.addAll(tree); + return cascaders; + } + + private Cascader setChildren(Cascader cascader, Map<Long, List<Cascader>> map) { + List<Cascader> children = map.getOrDefault(cascader.getValue(), new ArrayList<>()); + for (Cascader child : children) { + setChildren(child, map); // 閫掑綊璁剧疆瀛愯妭鐐圭殑瀛愯妭鐐� + } + cascader.setChildren(children); + return cascader; + } + /** * 閫掑綊鍒楄〃 */ diff --git a/ycl-server/src/main/resources/mapper/system/SysDeptMapper.xml b/ycl-server/src/main/resources/mapper/system/SysDeptMapper.xml index 5c2f042..e2aecb8 100644 --- a/ycl-server/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/ycl-server/src/main/resources/mapper/system/SysDeptMapper.xml @@ -22,12 +22,12 @@ <result property="updateBy" column="update_by" /> <result property="updateTime" column="update_time" /> </resultMap> - + <sql id="selectDeptVo"> select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time,d.area from sys_dept d </sql> - + <select id="selectDeptList" parameterType="com.ycl.system.entity.SysDept" resultMap="SysDeptResult"> <include refid="selectDeptVo"/> where d.del_flag = '0' @@ -47,7 +47,7 @@ ${params.dataScope} order by d.parent_id, d.order_num </select> - + <select id="selectDeptListByRoleId" resultType="Long"> select d.dept_id from sys_dept d @@ -58,36 +58,36 @@ </if> order by d.parent_id, d.order_num </select> - + <select id="selectDeptById" parameterType="Long" resultMap="SysDeptResult"> select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status,d.area, (select dept_name from sys_dept where dept_id = d.parent_id) parent_name from sys_dept d where d.dept_id = #{deptId} </select> - + <select id="checkDeptExistUser" parameterType="Long" resultType="int"> select count(1) from sys_user where dept_id = #{deptId} and del_flag = '0' </select> - + <select id="hasChildByDeptId" parameterType="Long" resultType="int"> select count(1) from sys_dept where del_flag = '0' and parent_id = #{deptId} limit 1 </select> - + <select id="selectChildrenDeptById" parameterType="Long" resultMap="SysDeptResult"> select * from sys_dept where find_in_set(#{deptId}, ancestors) </select> - + <select id="selectNormalChildrenDeptById" parameterType="Long" resultType="int"> select count(*) from sys_dept where status = 0 and del_flag = '0' and find_in_set(#{deptId}, ancestors) </select> - + <select id="checkDeptNameUnique" resultMap="SysDeptResult"> <include refid="selectDeptVo"/> where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1 </select> - + <insert id="insertDept" parameterType="com.ycl.system.entity.SysDept"> insert into sys_dept( <if test="deptId != null and deptId != 0">dept_id,</if> @@ -115,7 +115,7 @@ sysdate() ) </insert> - + <update id="updateDept" parameterType="com.ycl.system.entity.SysDept"> update sys_dept <set> @@ -133,7 +133,7 @@ </set> where dept_id = #{deptId} </update> - + <update id="updateDeptChildren" parameterType="java.util.List"> update sys_dept set ancestors = <foreach collection="depts" item="item" index="index" @@ -146,16 +146,36 @@ #{item.deptId} </foreach> </update> - + <update id="updateDeptStatusNormal" parameterType="Long"> - update sys_dept set status = '0' where dept_id in + update sys_dept set status = '0' where dept_id in <foreach collection="array" item="deptId" open="(" separator="," close=")"> #{deptId} </foreach> </update> - + <delete id="deleteDeptById" parameterType="Long"> update sys_dept set del_flag = '2' where dept_id = #{deptId} </delete> -</mapper> \ No newline at end of file + <select id="cascader" resultType="com.ycl.platform.base.Cascader"> + SELECT dept_id as value, dept_name as label, parent_id as parentId FROM sys_dept WHERE status = '0' AND del_flag = '0' + </select> + + <select id="selectParents" resultType="long"> + WITH RECURSIVE temp_table AS ( + SELECT + dept_id, dept_name, parent_id, 0 as level FROM sys_dept WHERE dept_id = 101 + UNION ALL + SELECT + sd.dept_id, sd.dept_name, sd.parent_id, tb.level+1 FROM sys_dept sd INNER JOIN temp_table tb ON sd.dept_id = tb.parent_id + ) + SELECT + dept_id + FROM + temp_table + ORDER BY + level DESC + </select> + +</mapper> diff --git a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml index 270f10d..d10f643 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml @@ -9,12 +9,47 @@ <result column="start_time" property="startTime" /> <result column="end_time" property="endTime" /> <result column="unit_id" property="unitId" /> + <result column="unit_name" property="unitName" /> <result column="status" property="status" /> + <result column="dept_id" property="deptId" /> + <result column="dept_name" property="deptName" /> <result column="remark" property="remark" /> + <result column="create_time" property="createTime" /> + <result column="update_time" property="updateTime" /> + <result column="category" property="category" /> + <result column="point_tag" property="pointTagString" /> </resultMap> <select id="selectData" resultType="com.ycl.platform.base.BaseSelect"> </select> + <select id="page" resultMap="BaseResultMap"> + SELECT + typ.id, + typ.point_name, + typ.point_tag, + typ.start_time, + typ.end_time, + typ.unit_id, + tyu.unit_name, + typ.status, + typ.dept_id, + sd.dept_name, + typ.remark, + typ.create_time, + typ.update_time, + typ.point_tag, + typ.category + FROM + t_yw_point typ + LEFT JOIN t_yw_unit tyu ON typ.unit_id = tyu.id AND tyu.deleted = 0 + LEFT JOIN sys_dept sd ON typ.dept_id = sd.dept_id AND sd.del_flag = 0 + <where> + <if test="query.pointName != null and query.pointName != ''"> + AND typ.point_name like concat('%', #{query.pointName}, '%') + </if> + </where> + </select> + </mapper> -- Gitblit v1.8.0