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