diff --git a/db/第二阶段.sql b/db/第二阶段.sql index af250096..727c09e4 100644 --- a/db/第二阶段.sql +++ b/db/第二阶段.sql @@ -7,6 +7,7 @@ create table laws_enterprise_standard_plan standard_number varchar(200) comment '标准编号', standard_name varchar(200) comment '标准名称', main_drafting_user varchar(50) comment '起草人', + depart_id varchar(50) comment '所在部门id', professional_module varchar(30) comment '专业模块', draft_complete_date datetime comment '初稿完成日期', plan_archiving_date datetime comment '计划归档日期', @@ -107,6 +108,7 @@ create table process_annual_init_link standard_number varchar(200) comment '标准编号', standard_name varchar(200) comment '标准名称', main_drafting_user varchar(50) comment '起草人', + depart_id varchar(50) comment '所在部门id', professional_module varchar(30) comment '专业模块', draft_complete_date datetime comment '初稿完成日期', plan_archiving_date datetime comment '计划归档日期', @@ -154,6 +156,7 @@ create table process_plan_change_link revision_type varchar(50) comment '制修订类别', plan_id varchar(36) comment '企标计划', drafting_user varchar(50) comment '起草人', + depart_id varchar(50) comment '所在部门id', draft_complete_date datetime comment '初稿完成日期变更后', plan_archiving_date datetime comment '计划归档日期变更后', change_reason varchar(500) comment '变更原因', @@ -235,7 +238,16 @@ create table process_standard_solicit_opinions_user alter table process_standard_solicit_opinions_user comment '标准征求意见流程关联用户'; -- 企标计划-计划状态 -INSERT INTO sys_dict (id, dict_name, dict_code, description, del_flag, create_by, create_time, is_tag_dict, is_read_only) VALUES ('1836301517254893569', '企标计划-计划状态', 'esp_plan_status', '新增:新增计划入库 延期:初稿完成日期和计划归档日期延期 取消:计划取消 如走到初稿、征求意见流程了,计划不允许取消', 0, 'cheryrsm', '2024-09-18 15:09:33', 0, 0); -INSERT INTO sys_dict_item (id, dict_id, item_text, item_value, description, sort_order, `status`, create_by, create_time, is_tag_dict, is_read_only, del_flag) VALUES ('1836301610292944898', '1836301517254893569', '新增', '1', '', 1, 1, 'cheryrsm', '2024-09-18 15:09:55', 0, 0, 0); -INSERT INTO sys_dict_item (id, dict_id, item_text, item_value, description, sort_order, `status`, create_by, create_time, is_tag_dict, is_read_only, del_flag) VALUES ('1836301637493006338', '1836301517254893569', '延期', '2', '', 2, 1, 'cheryrsm', '2024-09-18 15:10:01', 0, 0, 0); -INSERT INTO sys_dict_item (id, dict_id, item_text, item_value, description, sort_order, `status`, create_by, create_time, is_tag_dict, is_read_only, del_flag) VALUES ('1836301659982864385', '1836301517254893569', '取消', '3', '', 3, 1, 'cheryrsm', '2024-09-18 15:10:07', 0, 0, 0); \ No newline at end of file +INSERT INTO sys_dict (id, dict_name, dict_code, description, del_flag, create_by, create_time, is_tag_dict, + is_read_only) +VALUES ('1836301517254893569', '企标计划-计划状态', 'esp_plan_status', + '新增:新增计划入库 延期:初稿完成日期和计划归档日期延期 取消:计划取消 如走到初稿、征求意见流程了,计划不允许取消', 0, 'cheryrsm', '2024-09-18 15:09:33', 0, 0); +INSERT INTO sys_dict_item (id, dict_id, item_text, item_value, description, sort_order, `status`, create_by, + create_time, is_tag_dict, is_read_only, del_flag) +VALUES ('1836301610292944898', '1836301517254893569', '新增', '1', '', 1, 1, 'cheryrsm', '2024-09-18 15:09:55', 0, 0, 0); +INSERT INTO sys_dict_item (id, dict_id, item_text, item_value, description, sort_order, `status`, create_by, + create_time, is_tag_dict, is_read_only, del_flag) +VALUES ('1836301637493006338', '1836301517254893569', '延期', '2', '', 2, 1, 'cheryrsm', '2024-09-18 15:10:01', 0, 0, 0); +INSERT INTO sys_dict_item (id, dict_id, item_text, item_value, description, sort_order, `status`, create_by, + create_time, is_tag_dict, is_read_only, del_flag) +VALUES ('1836301659982864385', '1836301517254893569', '取消', '3', '', 3, 1, 'cheryrsm', '2024-09-18 15:10:07', 0, 0, 0); \ No newline at end of file diff --git a/laws-base/laws-base-api/jero-system-local-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java b/laws-base/laws-base-api/jero-system-local-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java index 87b30444..85bd95fa 100644 --- a/laws-base/laws-base-api/jero-system-local-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java +++ b/laws-base/laws-base-api/jero-system-local-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java @@ -351,4 +351,13 @@ public interface ISysBaseAPI extends CommonAPI { List loadDictItemByKeyword(String dictCode, String keyword, Integer pageSize); String translateByDictMap(Map dictMap, String keys); + + Map getDepNamesByUserIds(List userIdList); + + /** + * 根据部门Id查询,当前和下级所有部门IDS + * @param departId + * @return + */ + List getSubDepIdsByDepId(String departId); } diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java index d7eb21a7..ade0e1fc 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java @@ -77,6 +77,8 @@ public class SysBaseApiImpl implements ISysBaseAPI { private SysUserRoleMapper sysUserRoleMapper; @Autowired private ISysDepartService sysDepartService; + @Resource + private ISysUserService sysUserService; @Autowired private ISysDictService sysDictService; @Resource @@ -1194,6 +1196,16 @@ public class SysBaseApiImpl implements ISysBaseAPI { return String.join(",",resultList); } + @Override + public Map getDepNamesByUserIds(List userIdList) { + return sysUserService.getDepNamesByUserIds(userIdList); + } + + @Override + public List getSubDepIdsByDepId(String departId) { + return sysDepartService.getSubDepIdsByDepId(departId); + } + @Override public Map> translateManyDict(String dictCodes, String keys) { List dictCodeList = Arrays.asList(dictCodes.split(",")); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/EnterpriseStandardPlan.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/EnterpriseStandardPlan.java index c1feff25..bf81995c 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/EnterpriseStandardPlan.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/EnterpriseStandardPlan.java @@ -1,6 +1,7 @@ package com.jero.modules.laws.enterprise.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; @@ -61,6 +62,11 @@ public class EnterpriseStandardPlan { */ @ApiModelProperty(value = "起草人") private String mainDraftingUser; + /** + * 所在部门id + */ + @ApiModelProperty(value = "所在部门id") + private String departId; /** * 专业模块 */ diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/EnterpriseStandardPlanVo.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/EnterpriseStandardPlanVo.java index 91615ea0..f63d8678 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/EnterpriseStandardPlanVo.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/EnterpriseStandardPlanVo.java @@ -28,7 +28,7 @@ public class EnterpriseStandardPlanVo { @Excel(name = "制修订类别", width = 15, dicCode = "esp_revision_type") @Dict(dicCode = "esp_revision_type") @ApiModelProperty(value = "制修订类别") - private String applicationCategory; + private String revisionType; @Excel(name = "标准编号", width = 15) @ApiModelProperty(value = "标准编号") @@ -38,17 +38,22 @@ public class EnterpriseStandardPlanVo { @ApiModelProperty(value = "标准名称") private String standardName; - @Excel(name = "起草人", width = 15) + @Excel(name = "起草人", width = 15, dictTable = "sys_user", dicCode = "id", dicText = "realname") + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") @ApiModelProperty(value = "起草人") private String mainDraftingUser; @Excel(name = "邮箱", width = 15) @ApiModelProperty(value = "邮箱") - private String mail; - - @Excel(name = "所在部门", width = 15) - @ApiModelProperty(value = "所在部门") - private String depart; + private String email; + + /** + * 所在部门id + */ + @Excel(name = "所在部门", width = 15, dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") + @Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") + @ApiModelProperty(value = "所在部门id") + private String departId; /** * 专业模块 diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardPlanServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardPlanServiceImpl.java index 49404c50..62e8a617 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardPlanServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardPlanServiceImpl.java @@ -1,5 +1,7 @@ package com.jero.modules.laws.enterprise.service.impl; +import cn.hutool.core.collection.CollStreamUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -7,7 +9,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.CommonAPI; import com.jero.common.exception.JeroBootException; +import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.query.QueryGenerator; +import com.jero.common.system.vo.DictModel; +import com.jero.common.util.PasswordUtil; import com.jero.modules.activiti.util.ExcelUtils; import com.jero.modules.laws.common.service.ILawsCommonService; import com.jero.modules.laws.common.util.ImportUtil; @@ -16,6 +21,7 @@ import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardPlanVo; import com.jero.modules.laws.enterprise.mapper.EnterpriseStandardPlanMapper; import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -25,6 +31,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * @author ThinkBook @@ -42,6 +50,8 @@ public class EnterpriseStandardPlanServiceImpl extends ServiceImpl queryPageList(EnterpriseStandardPlan enterpriseStandardPlan, HttpServletRequest req, IPage page) { + List subDepIds = null; + String departId = enterpriseStandardPlan.getDepartId(); + if (StringUtils.isNotBlank(departId)) { + subDepIds = sysBaseAPI.getSubDepIdsByDepId(departId); + enterpriseStandardPlan.setDepartId(null); + } QueryWrapper wrapper = QueryGenerator.initQueryWrapper(enterpriseStandardPlan, req.getParameterMap()); + if (subDepIds != null){ + wrapper.lambda().in(EnterpriseStandardPlan::getDepartId,subDepIds); + } IPage pageList = this.page(page, wrapper); IPage pageList1 = new Page<>(); BeanUtils.copyProperties(pageList,pageList1); List records = pageList.getRecords(); + List userIdList = records.stream().map(EnterpriseStandardPlan::getMainDraftingUser).distinct().collect(Collectors.toList()); + //批量查询用户邮箱 + List dictModels = sysBaseAPI.translateDictFromTableByKeys("sys_user", "email", "id", String.join(",", userIdList)); + Map userEmailMap = CollStreamUtil.toMap(dictModels, DictModel::getValue, DictModel::getText); List list = new ArrayList<>(); for (EnterpriseStandardPlan record : records) { EnterpriseStandardPlanVo vo = new EnterpriseStandardPlanVo(); BeanUtils.copyProperties(record,vo); + String userId = vo.getMainDraftingUser(); + vo.setEmail(PasswordUtil.decrypt(userEmailMap.get(userId))); list.add(vo); } pageList1.setRecords(list);