From 5bd89aa63e546873a07ac51192a99f6fc5cf1757 Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Thu, 12 Jan 2023 14:59:11 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=BA=93--=E7=BD=AE?= =?UTF-8?q?=E9=A1=B6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/xml/ProjectLibraryBaseMapper.xml | 2 +- .../impl/ProjectLibraryBaseServiceImpl.java | 96 ++++++++++++++++--- .../jero/modules/top/entity/TopProjectEO.java | 79 +++++++++++++++ .../top/mapper/TopProjectEOMapper.java | 17 ++++ .../top/mapper/xml/TopProjectEOMapper.xml | 15 +++ .../top/service/ITopProjectEOService.java | 61 ++++++++++++ .../service/impl/TopProjectEOServiceImpl.java | 89 +++++++++++++++++ 7 files changed, 346 insertions(+), 13 deletions(-) create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/entity/TopProjectEO.java create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/mapper/TopProjectEOMapper.java create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/mapper/xml/TopProjectEOMapper.xml create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/service/ITopProjectEOService.java create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/service/impl/TopProjectEOServiceImpl.java diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLibraryBaseMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLibraryBaseMapper.xml index 26e42dd5a..909b618e8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLibraryBaseMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLibraryBaseMapper.xml @@ -136,7 +136,7 @@ parent_id = '' or parent_id is null - order by plb.sort desc, plb.create_time desc + order by plb.create_time desc diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index 45e9778aa..1b393189d 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -52,6 +52,8 @@ import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import com.jero.modules.system.util.StringUtils; +import com.jero.modules.top.entity.TopProjectEO; +import com.jero.modules.top.service.ITopProjectEOService; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.poi.hssf.usermodel.HSSFSheet; @@ -74,6 +76,7 @@ import java.text.ParseException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -157,6 +160,9 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode()); + //置顶 + List idList = result.stream().map(ProjectLibraryBase::getId).collect(Collectors.toList()); + List topProjectEOList = new ArrayList<>(); + if(ObjectUtils.isNotEmpty(idList)){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(TopProjectEO::getCreateBy,loginUser.getUsername()).in(TopProjectEO::getProjectLibraryBaseId,idList).orderByDesc(TopProjectEO::getSort); + topProjectEOList = iTopProjectEOService.list(wrapper); + } + for(ProjectLibraryBase projectLibraryBase: result){ + //置顶处理 + if(ObjectUtils.isNotEmpty(topProjectEOList)){ + List collect = topProjectEOList.stream() + .filter(e -> projectLibraryBase.getId().equals(e.getProjectLibraryBaseId()) + && loginUser.getUsername().equals(e.getCreateBy())) + .collect(Collectors.toList()); + if(ObjectUtils.isNotEmpty(collect)){ + projectLibraryBase.setFlag(collect.get(0).getFlag()); + projectLibraryBase.setSort(collect.get(0).getSort()); + }else{ + projectLibraryBase.setSort("0"); + } + }else{ + projectLibraryBase.setSort("0"); + } //目标市场 String targetMarket = getMarket(params, targetMarketList, projectLibraryBase); //主项目的版本号 @@ -809,6 +839,16 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl() { + @Override + public int compare(ProjectLibraryBase o1, ProjectLibraryBase o2) { + return -o1.getSort().compareTo(o2.getSort()); + } + }); + } + //所有主项目 List projectLibraryBaseListParent = projectLibraryBaseMapper.queryMaimList(); disposeData(projectLibraryBaseListParent,"",false); @@ -1665,32 +1705,64 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); - wrapper.isNotNull(ProjectLibraryBase::getSort).orderByDesc(ProjectLibraryBase::getSort); - List list = this.list(wrapper); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(TopProjectEO::getCreateBy,loginUser.getUsername()).orderByDesc(TopProjectEO::getSort); + List list = iTopProjectEOService.list(wrapper); if(list.size() != 0){ - String sort = list.get(list.size() - 1).getSort(); + String sort = list.get(0).getSort(); int sortTemp = Integer.valueOf(sort) + 1; - projectLibraryBase.setSort(String.valueOf(sortTemp)); + topProjectEO.setSort(String.valueOf(sortTemp)); }else{ //首个置顶的项目排序为1 - projectLibraryBase.setSort("1"); + topProjectEO.setSort("1"); } - projectLibraryBase.setFlag(TopEnum.TOP_CANCEL.getValue()); - this.updateById(projectLibraryBase); + iTopProjectEOService.save(topProjectEO); }else{ //取消置顶 - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.in(ProjectLibraryBase::getId,id); - updateWrapper.set(ProjectLibraryBase::getSort,null).set(ProjectLibraryBase::getFlag,null); - this.update(projectLibraryBase,updateWrapper); + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.in(TopProjectEO::getCreateBy,loginUser.getUsername()).in(TopProjectEO::getProjectLibraryBaseId,id); + iTopProjectEOService.remove(wrapper); } } +// @Override +// public void top(String id, String flag) { +// ProjectLibraryBase projectLibraryBase = this.getById(id); +// //置顶的时候将取消置顶标识传过来即:flag=1 +// if(TopEnum.TOP_CANCEL.getValue().equals(flag)){ +// //置顶 +// LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); +// wrapper.isNotNull(ProjectLibraryBase::getSort).orderByDesc(ProjectLibraryBase::getSort); +// List list = this.list(wrapper); +// if(list.size() != 0){ +// String sort = list.get(list.size() - 1).getSort(); +// int sortTemp = Integer.valueOf(sort) + 1; +// projectLibraryBase.setSort(String.valueOf(sortTemp)); +// }else{ +// //首个置顶的项目排序为1 +// projectLibraryBase.setSort("1"); +// } +// projectLibraryBase.setFlag(TopEnum.TOP_CANCEL.getValue()); +// this.updateById(projectLibraryBase); +// +// }else{ +// //取消置顶 +// LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); +// updateWrapper.in(ProjectLibraryBase::getId,id); +// updateWrapper.set(ProjectLibraryBase::getSort,null).set(ProjectLibraryBase::getFlag,null); +// this.update(projectLibraryBase,updateWrapper); +// } +// } @Override public List getVersionsInfo(String id) { diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/entity/TopProjectEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/entity/TopProjectEO.java new file mode 100644 index 000000000..7179b572d --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/entity/TopProjectEO.java @@ -0,0 +1,79 @@ +package com.jero.modules.top.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import com.jero.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + + +/** + * @Description: 项目库置顶关联表 + * @Author: jero-boot + * @Date: 2023-01-12 + * @Version: V1.0 + */ +@Data +@TableName("top_project") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="top_project对象", description="项目库置顶关联表") +public class TopProjectEO implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private java.lang.String id; + + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private java.lang.String sysOrgCode; + + /**项目id*/ + @Excel(name = "项目id", width = 15) + @ApiModelProperty(value = "项目id") + private java.lang.String projectLibraryBaseId; + + /**置顶标识*/ + @Excel(name = "置顶标识", width = 15) + @ApiModelProperty(value = "置顶标识") + private java.lang.String flag; + + /**置顶排序*/ + @Excel(name = "置顶排序", width = 15) + @ApiModelProperty(value = "置顶排序") + private java.lang.String sort; + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/mapper/TopProjectEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/mapper/TopProjectEOMapper.java new file mode 100644 index 000000000..12dd3b6ed --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/mapper/TopProjectEOMapper.java @@ -0,0 +1,17 @@ +package com.jero.modules.top.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import com.jero.modules.top.entity.TopProjectEO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 项目库置顶关联表 + * @Author: jero-boot + * @Date: 2023-01-12 + * @Version: V1.0 + */ +public interface TopProjectEOMapper extends BaseMapper { + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/mapper/xml/TopProjectEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/mapper/xml/TopProjectEOMapper.xml new file mode 100644 index 000000000..3b74c28d9 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/mapper/xml/TopProjectEOMapper.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/service/ITopProjectEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/service/ITopProjectEOService.java new file mode 100644 index 000000000..face0aac6 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/service/ITopProjectEOService.java @@ -0,0 +1,61 @@ +package com.jero.modules.top.service; + +import com.jero.modules.top.entity.TopProjectEO; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * @Description: 项目库置顶关联表 + * @Author: jero-boot + * @Date: 2023-01-12 + * @Version: V1.0 + */ +public interface ITopProjectEOService extends IService { + + /** + * 保存 + * + * @param topProjectEO + * @return + */ + void add(TopProjectEO topProjectEO); + + /** + * 更新 + * + * @param topProjectEO + * @return + */ + void editById(TopProjectEO topProjectEO); + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + TopProjectEO queryById(String id); + + /** + * 列表查询 + * + * @return + */ + List queryList(); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/service/impl/TopProjectEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/service/impl/TopProjectEOServiceImpl.java new file mode 100644 index 000000000..d8473fc8c --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/top/service/impl/TopProjectEOServiceImpl.java @@ -0,0 +1,89 @@ +package com.jero.modules.top.service.impl; + +import com.jero.modules.top.entity.TopProjectEO; +import com.jero.modules.top.mapper.TopProjectEOMapper; +import com.jero.modules.top.service.ITopProjectEOService; +import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Date; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 项目库置顶关联表 + * @Author: jero-boot + * @Date: 2023-01-12 + * @Version: V1.0 + */ +@Service +public class TopProjectEOServiceImpl extends ServiceImpl implements ITopProjectEOService { + + /** + * 保存 + * + * @param topProjectEO + * @return + */ + @Override + public void add(TopProjectEO topProjectEO) { + Date now = new Date(); + topProjectEO.setCreateTime(now); + topProjectEO.setUpdateTime(now); + save(topProjectEO); + } + + /** + * 更新 + * + * @param topProjectEO + * @return + */ + @Override + public void editById(TopProjectEO topProjectEO) { + Date now = new Date(); + topProjectEO.setUpdateTime(now); + saveOrUpdate(topProjectEO); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @Override + public void deleteById(String id) { + removeById(id); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @Override + public void deleteByIds(List ids) { + removeByIds(ids); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override + public TopProjectEO queryById(String id) { + return getById(id); + } + + /** + * 列表查询 + * + * @return + */ + @Override + public List queryList() { + return list(); + } +} From 77ff0f32d8d26c624b23c98cf716bb1014ce5adc Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Thu, 12 Jan 2023 15:02:15 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=BA=93=E7=BD=AE?= =?UTF-8?q?=E9=A1=B6sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jero-boot/db/蔚来标准sql/dev_2nd_period.sql | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql index b298be65c..5417c8271 100644 --- a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql +++ b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql @@ -159,3 +159,12 @@ ALTER TABLE `laws_weilai`.`params_report_detail` -- 更新拆分详情列 展示顺序不在列表头展示sql 2022-12-30 已同步生产环境 UPDATE `laws_weilai`.`onl_cgform_field` SET `is_show_list` = 0 WHERE `id` = '1529373706885799937' + +-- 项目库置顶 2023-1-12 未同步生产环境 +CREATE TABLE `laws_weilai`.`top_project` ( + `id` varchar(36) NOT NULL COMMENT 'id', + `project_library_base_id` varchar(36) NULL COMMENT '项目id', + `flag` varchar(255) NULL COMMENT '置顶标识', + `sort` varchar(255) NULL COMMENT '置顶排序', + PRIMARY KEY (`id`) +);