diff --git a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql index 8d7e32124..f07aa6b74 100644 --- a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql +++ b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql @@ -160,6 +160,23 @@ 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-01-05 未同步生产环境 +CREATE TABLE `laws_weilai`.`head_custom` ( + `id` varchar(36) NOT NULL COMMENT 'id', + `create_by` varchar(255) NULL COMMENT '创建人', + `create_time` datetime(0) NULL COMMENT '创建时间', + `update_by` varchar(255) NULL COMMENT '修改人', + `update_time` datetime(0) NULL COMMENT '修改时间', + `sys_org_code` varchar(255) NULL COMMENT '部门', + `head_field_cn` varchar(255) NULL COMMENT '表头字段中文', + `head_field_en` varchar(255) NULL COMMENT '表头字段英文', + `parent_id` varchar(36) NULL COMMENT '父id', + `module_flag` varchar(255) NULL COMMENT '模块标识', + `sort` varchar(255) NULL COMMENT '排序', + `field` varchar(255) NULL COMMENT '对应列表接口字段名', + `affirm_flag` varchar(36) NULL COMMENT '确认标识', + PRIMARY KEY (`id`)); + -- 项目库置顶 2023-1-12 已同步生产环境 CREATE TABLE `top_project` ( `id` varchar(36) NOT NULL, diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/controller/HeadCustomEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/controller/HeadCustomEOController.java new file mode 100644 index 000000000..6fcd7e3f9 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/controller/HeadCustomEOController.java @@ -0,0 +1,184 @@ +package com.jero.modules.head.controller; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.jero.common.api.vo.Result; +import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.head.entity.HeadCustomEO; +import com.jero.modules.head.service.IHeadCustomEOService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.modules.head.vo.HeadCustomVO; +import lombok.extern.slf4j.Slf4j; +import com.jero.common.system.base.controller.JeroController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import com.jero.common.aspect.annotation.AutoLog; + + + /** + * @Description: 自定义表头 + * @Author: jero-boot + * @Date: 2023-01-05 + * @Version: V1.0 + */ +@Api(tags="自定义表头") +@RestController +@RequestMapping("/head/headCustomEO") +@Slf4j +public class HeadCustomEOController extends JeroController { + @Autowired + private IHeadCustomEOService headCustomEOService; + + /** + * 分页列表查询 + * + * @param headCustomEO + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "自定义表头-分页列表查询") + @ApiOperation(value="自定义表头-分页列表查询", notes="自定义表头-分页列表查询") + @GetMapping(value = "/page") + public Result queryPageList(HeadCustomEO headCustomEO, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(headCustomEO, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = headCustomEOService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 列表查询 + * @param cut + * @param moduleFlag 模块标识 + * @return + */ + @AutoLog(value = "自定义表头-列表查询") + @ApiOperation(value="自定义表头-列表查询", notes="自定义表头-列表查询") + @GetMapping(value = "/list") + public Result> queryList(String cut,String moduleFlag) { + List list = headCustomEOService.queryList(cut,moduleFlag); + return Result.OK(list); + } + + /** + * 添加 + * + * @param jsonObject + * @return + */ + @AutoLog(value = "自定义表头-添加") + @ApiOperation(value="自定义表头-添加", notes="自定义表头-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody JSONObject jsonObject) { + JSONArray headCustomEOArr = jsonObject.getJSONArray("headCustomEOList"); + List headCustomEOList = new ArrayList<>(); + HeadCustomEO headCustomEO = null; + for (Object headCustom : headCustomEOArr) { + headCustomEO = JSONObject.parseObject(JSONObject.toJSONString(headCustom),HeadCustomEO.class); + headCustomEOList.add(headCustomEO); + } + + headCustomEOService.add(headCustomEOList); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param headCustomEO + * @return + */ + @AutoLog(value = "自定义表头-编辑") + @ApiOperation(value="自定义表头-编辑", notes="自定义表头-编辑") + @PutMapping(value = "/edit") + public Result edit(@Validated @RequestBody HeadCustomEO headCustomEO) { + headCustomEOService.editById(headCustomEO); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "自定义表头-通过id删除") + @ApiOperation(value="自定义表头-通过id删除", notes="自定义表头-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + headCustomEOService.deleteById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "自定义表头-批量删除") + @ApiOperation(value="自定义表头-批量删除", notes="自定义表头-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.headCustomEOService.deleteByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @AutoLog(value = "自定义表头-通过id查询") + @ApiOperation(value="自定义表头-通过id查询", notes="自定义表头-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + HeadCustomEO headCustomEO = headCustomEOService.queryById(id); + if(headCustomEO==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(headCustomEO); + } + + /** + * 导出excel + * + * @param request + * @param headCustomEO + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, HeadCustomEO headCustomEO) { + return super.exportXls(request, headCustomEO, HeadCustomEO.class, "自定义表头"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, HeadCustomEO.class); + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/entity/HeadCustomEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/entity/HeadCustomEO.java new file mode 100644 index 000000000..e0bc49fa3 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/entity/HeadCustomEO.java @@ -0,0 +1,111 @@ +package com.jero.modules.head.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; +import java.util.List; + +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.jero.modules.project.entity.ProjectLibraryBase; +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-05 + * @Version: V1.0 + */ +@Data +@TableName("head_custom") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="head_custom对象", description="自定义表头") +public class HeadCustomEO implements Comparable { + 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; + + /**表头字段中文*/ + @Excel(name = "表头字段中文", width = 15) + @ApiModelProperty(value = "表头字段中文") + private java.lang.String headFieldCn; + + /**表头字段英文*/ + @Excel(name = "表头字段英文", width = 15) + @ApiModelProperty(value = "表头字段英文") + private java.lang.String headFieldEn; + + /**对应列表接口字段名*/ + @Excel(name = "对应列表接口字段名", width = 15) + @ApiModelProperty(value = "对应列表接口字段名") + private java.lang.String field; + + /**父id*/ + @Excel(name = "父id", width = 15) + @ApiModelProperty(value = "父id") + private java.lang.String parentId; + + /**模块标识*/ + @Excel(name = "模块标识", width = 15) + @ApiModelProperty(value = "模块标识") + private java.lang.String moduleFlag; + + @TableField(exist = false) + @ApiModelProperty(value = "二级标题") + private List children; + + @ApiModelProperty(value = "标题顺序") + private String sort; + + /**确认标识*/ + @Excel(name = "确认标识", width = 15) + @ApiModelProperty(value = "确认标识") + private java.lang.String affirmFlag; + + @Override + public int compareTo(HeadCustomEO o) { + return Integer.valueOf(this.getSort())-Integer.valueOf(o.getSort());//升序 +// return o.id-this.id;//降序 + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/enums/AffirmFlagEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/enums/AffirmFlagEnum.java new file mode 100644 index 000000000..c7f391a04 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/enums/AffirmFlagEnum.java @@ -0,0 +1,48 @@ +package com.jero.modules.head.enums; + +/** + * @description + * @date 2022/1/21 15:22 + * @auth zhn + */ +public enum AffirmFlagEnum { + DESIGN_FLAG("设计符合性确认","Design Compliance Check","1"), + AFFIRM_FLAG("Pre-Homo确认","Pre-Homo Confirmation","2"), + VERIFY_FLAG("验证符合性确认","Validation Compliance Check","3"); + + + + String name; + String nameEn; + String value; + + private AffirmFlagEnum(String name,String nameEn, String value) { + this.name = name; + this.nameEn = nameEn; + this.value = value; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getNameEn() { + return nameEn; + } + + public void setNameEn(String nameEn) { + this.nameEn = nameEn; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/mapper/HeadCustomEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/mapper/HeadCustomEOMapper.java new file mode 100644 index 000000000..065700021 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/mapper/HeadCustomEOMapper.java @@ -0,0 +1,17 @@ +package com.jero.modules.head.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import com.jero.modules.head.entity.HeadCustomEO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 自定义表头 + * @Author: jero-boot + * @Date: 2023-01-05 + * @Version: V1.0 + */ +public interface HeadCustomEOMapper extends BaseMapper { + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/mapper/xml/HeadCustomEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/mapper/xml/HeadCustomEOMapper.xml new file mode 100644 index 000000000..79e47d03e --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/mapper/xml/HeadCustomEOMapper.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/service/IHeadCustomEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/service/IHeadCustomEOService.java new file mode 100644 index 000000000..6c734819b --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/service/IHeadCustomEOService.java @@ -0,0 +1,63 @@ +package com.jero.modules.head.service; + +import com.jero.modules.head.entity.HeadCustomEO; +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.head.vo.HeadCustomVO; + +import java.util.List; + +/** + * @Description: 自定义表头 + * @Author: jero-boot + * @Date: 2023-01-05 + * @Version: V1.0 + */ +public interface IHeadCustomEOService extends IService { + + /** + * 保存 + * + * @param headCustomEOList + * @return + */ + void add(List headCustomEOList); + + /** + * 更新 + * + * @param headCustomEO + * @return + */ + void editById(HeadCustomEO headCustomEO); + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + HeadCustomEO queryById(String id); + + /** + * 列表查询 + * + * @return + */ + List queryList(String cut, String moduleFlag); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/service/impl/HeadCustomEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/service/impl/HeadCustomEOServiceImpl.java new file mode 100644 index 000000000..636cbf7fb --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/service/impl/HeadCustomEOServiceImpl.java @@ -0,0 +1,274 @@ +package com.jero.modules.head.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.common.constant.enums.CutEnum; +import com.jero.common.system.vo.LoginUser; +import com.jero.modules.head.entity.HeadCustomEO; +import com.jero.modules.head.enums.AffirmFlagEnum; +import com.jero.modules.head.mapper.HeadCustomEOMapper; +import com.jero.modules.head.service.IHeadCustomEOService; +import com.jero.modules.head.vo.HeadCustomVO; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; +import org.jetbrains.annotations.NotNull; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; +import java.util.Date; +import java.util.UUID; +import java.util.stream.Collectors; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 自定义表头 + * @Author: jero-boot + * @Date: 2023-01-05 + * @Version: V1.0 + */ +@Service +public class HeadCustomEOServiceImpl extends ServiceImpl implements IHeadCustomEOService { + + /** + * 保存 + * + * @param headCustomEOList + * @return + */ + @Override + public void add(List headCustomEOList) { + if(ObjectUtils.isNotEmpty(headCustomEOList)){ + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + //先删除再新增 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(HeadCustomEO::getCreateBy,loginUser.getUsername()).in(HeadCustomEO::getModuleFlag,headCustomEOList.get(0).getModuleFlag()); + this.remove(wrapper); + + //一级标题 + List oneList = headCustomEOList.stream().filter(e -> StringUtils.isBlank(e.getAffirmFlag())).collect(Collectors.toList()); + Collections.sort(oneList); + //二级标题 + List twoList = headCustomEOList.stream().filter(e -> StringUtils.isNotBlank(e.getAffirmFlag())).collect(Collectors.toList()); + + //设计 + List design = twoList.stream().filter(e -> AffirmFlagEnum.DESIGN_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList()); + Collections.sort(design); + //pre + List affirm = twoList.stream().filter(e -> AffirmFlagEnum.AFFIRM_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList()); + Collections.sort(affirm); + //验证 + List verify = twoList.stream().filter(e -> AffirmFlagEnum.VERIFY_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList()); + Collections.sort(verify); + + if(ObjectUtils.isNotEmpty(design)){ + HeadCustomEO headCustomEO = new HeadCustomEO(); + headCustomEO.setHeadFieldCn(AffirmFlagEnum.DESIGN_FLAG.getName()); + headCustomEO.setHeadFieldEn(AffirmFlagEnum.DESIGN_FLAG.getNameEn()); + headCustomEO.setModuleFlag(design.get(0).getModuleFlag()); + headCustomEO.setSort(design.get(0).getSort()); + headCustomEO.setChildren(design); + oneList.add(headCustomEO); + } + if(ObjectUtils.isNotEmpty(affirm)){ + HeadCustomEO headCustomEO = new HeadCustomEO(); + headCustomEO.setHeadFieldCn(AffirmFlagEnum.AFFIRM_FLAG.getName()); + headCustomEO.setHeadFieldEn(AffirmFlagEnum.AFFIRM_FLAG.getNameEn()); + headCustomEO.setModuleFlag(affirm.get(0).getModuleFlag()); + headCustomEO.setSort(affirm.get(0).getSort()); + headCustomEO.setChildren(affirm); + oneList.add(headCustomEO); + } + if(ObjectUtils.isNotEmpty(verify)){ + HeadCustomEO headCustomEO = new HeadCustomEO(); + headCustomEO.setHeadFieldCn(AffirmFlagEnum.VERIFY_FLAG.getName()); + headCustomEO.setHeadFieldEn(AffirmFlagEnum.VERIFY_FLAG.getNameEn()); + headCustomEO.setModuleFlag(verify.get(0).getModuleFlag()); + headCustomEO.setSort(verify.get(0).getSort()); + headCustomEO.setChildren(verify); + oneList.add(headCustomEO); + } + + List headCustomEOS = new ArrayList<>(); + for (HeadCustomEO headCustomEO : oneList) { + //一级标题 + String id = UUID.randomUUID().toString().replace("-", ""); + HeadCustomEO headCustomEOTemp = getHeadCustomEO(loginUser, headCustomEO, id); + headCustomEOS.add(headCustomEOTemp); + //二级标题 + if(ObjectUtils.isNotEmpty(headCustomEO.getChildren())){ + for (HeadCustomEO child : headCustomEO.getChildren()) { + String idTemp = UUID.randomUUID().toString().replace("-", ""); + HeadCustomEO customEO = getHeadCustomEO(loginUser, child, idTemp); + customEO.setParentId(id); + headCustomEOS.add(customEO); + } + } + } + if(ObjectUtils.isNotEmpty(headCustomEOS)){ + this.saveBatch(headCustomEOS); + } + } + } +// @Override +// public void add(List headCustomEOList) { +// if(ObjectUtils.isNotEmpty(headCustomEOList)){ +// LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); +// //先删除再新增 +// LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); +// wrapper.in(HeadCustomEO::getCreateBy,loginUser.getUsername()).in(HeadCustomEO::getModuleFlag,headCustomEOList.get(0).getModuleFlag()); +// this.remove(wrapper); +// +// List headCustomEOS = new ArrayList<>(); +// for (HeadCustomEO headCustomEO : headCustomEOList) { +// //一级标题 +// String id = UUID.randomUUID().toString().replace("-", ""); +// HeadCustomEO headCustomEOTemp = getHeadCustomEO(loginUser, headCustomEO, id); +// headCustomEOS.add(headCustomEOTemp); +// //二级标题 +// if(ObjectUtils.isNotEmpty(headCustomEO.getChildren())){ +// for (HeadCustomEO child : headCustomEO.getChildren()) { +// String idTemp = UUID.randomUUID().toString().replace("-", ""); +// HeadCustomEO customEO = getHeadCustomEO(loginUser, child, idTemp); +// customEO.setParentId(id); +// headCustomEOS.add(customEO); +// } +// } +// } +// if(ObjectUtils.isNotEmpty(headCustomEOS)){ +// this.saveBatch(headCustomEOS); +// } +// } +// } + + @NotNull + private HeadCustomEO getHeadCustomEO(LoginUser loginUser, HeadCustomEO headCustomEO, String id) { + HeadCustomEO headCustomEOTemp = new HeadCustomEO(); + headCustomEOTemp.setId(id); + headCustomEOTemp.setHeadFieldCn(headCustomEO.getHeadFieldCn()); + headCustomEOTemp.setHeadFieldEn(headCustomEO.getHeadFieldEn()); + headCustomEOTemp.setModuleFlag(headCustomEO.getModuleFlag()); + headCustomEOTemp.setAffirmFlag(headCustomEO.getAffirmFlag()); + headCustomEOTemp.setField(headCustomEO.getField()); + headCustomEOTemp.setSort(headCustomEO.getSort()); + headCustomEOTemp.setCreateBy(loginUser.getUsername()); + headCustomEOTemp.setCreateTime(new Date()); + headCustomEOTemp.setUpdateTime(new Date()); + return headCustomEOTemp; + } + + /** + * 更新 + * + * @param headCustomEO + * @return + */ + @Override + public void editById(HeadCustomEO headCustomEO) { + Date now = new Date(); + headCustomEO.setUpdateTime(now); + saveOrUpdate(headCustomEO); + } + + /** + * 通过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 HeadCustomEO queryById(String id) { + return getById(id); + } + + /** + * 列表查询 + * + * @return + */ + @Override + public List queryList(String cut,String moduleFlag) { + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(HeadCustomEO::getCreateBy,loginUser.getUsername()).in(HeadCustomEO::getModuleFlag,moduleFlag); + List list = this.list(wrapper); + List headCustomVOOneList = new LinkedList<>(); + if(ObjectUtils.isNotEmpty(list)){ + //列表表头一级 + List oneList = list.stream() + .filter(e -> StringUtils.isBlank(e.getAffirmFlag())).collect(Collectors.toList()); + //列表表头二级 + List twoList = list.stream() + .filter(e -> StringUtils.isNotBlank(e.getAffirmFlag())).collect(Collectors.toList()); + Collections.sort(oneList); + for (HeadCustomEO headCustomEO : oneList) { + HeadCustomVO headCustomVO = new HeadCustomVO(); + if(ObjectUtils.isNotEmpty(twoList)){ + List two = twoList.stream() + .filter(e -> headCustomEO.getId().equals(e.getParentId())).collect(Collectors.toList()); + Collections.sort(two); + List headCustomVOTwoList = new LinkedList<>(); + for (HeadCustomEO customEO : two) { + HeadCustomVO headCustomVOTemp = new HeadCustomVO(); + getHeadCustomVO(cut, customEO, headCustomVOTemp); + headCustomVOTwoList.add(headCustomVOTemp); + } + if(ObjectUtils.isNotEmpty(headCustomVOTwoList)){ + headCustomVO.setChildren(headCustomVOTwoList); + } + } + getHeadCustomVO(cut, headCustomEO,headCustomVO); + headCustomVOOneList.add(headCustomVO); + } + } + return headCustomVOOneList; + } + + @NotNull + private HeadCustomVO getHeadCustomVO(String cut, HeadCustomEO headCustomEO,HeadCustomVO headCustomVO) { + headCustomVO.setDataIndex(headCustomEO.getField()); + if(CutEnum.CN.getValue().equals(cut)){ + headCustomVO.setTitle(headCustomEO.getHeadFieldCn()); + }else{ + headCustomVO.setTitle(headCustomEO.getHeadFieldEn()); + } + //每个功能模块列表表头固定的列可能不相同,所以需要单独处理(后期变更的时候继续维护此处即可) + if("法规清单".equals(headCustomEO.getModuleFlag())){ + if("编号".equals(headCustomEO.getHeadFieldCn())){ + headCustomVO.setFixed("left"); + } + if("标题".equals(headCustomEO.getHeadFieldCn())){ + headCustomVO.setFixed("left"); + } + if("操作".equals(headCustomEO.getHeadFieldCn())){ + headCustomVO.setFixed("right"); + } + } + return headCustomVO; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/vo/HeadCustomVO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/vo/HeadCustomVO.java new file mode 100644 index 000000000..a29392850 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/vo/HeadCustomVO.java @@ -0,0 +1,22 @@ +package com.jero.modules.head.vo; + +import lombok.Data; + +import java.util.List; + +/** + * @description + * @date 2023/1/6 9:48 + * @auth zhn + */ +@Data +public class HeadCustomVO { + private String title;//表头字段 + + private String dataIndex;//对应列表字段 + + private String fixed;//字段位置标识 + + private List children;//二级表头 + +} diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index 3e2b9e7ca..ceeddab0d 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1378,4 +1378,5 @@ module.exports = { columnforced:'Confirm a forced retraction?', customize:'Customize the header', customColumn:'Custom column', + } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index bf6a67de7..ecda6ea34 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -1476,7 +1476,7 @@ module.exports = { columnforced:'确认强制撤回?', brand:'品牌', allsubitemsitem:'该项目下拥有子项目,是否全部删除', - contactTheFounder:'联系作者', + contactTheFounder:'联系创建人', customize:'自定义表头', customColumn:'自定义列', } \ No newline at end of file diff --git a/jero-web/src/mixins/header.js b/jero-web/src/mixins/header.js index 75982d9b0..701975eba 100644 --- a/jero-web/src/mixins/header.js +++ b/jero-web/src/mixins/header.js @@ -94,7 +94,7 @@ const ResizeHeaderOne = function(val, name) { // 处理多级表头 col = getRenderCoL(key, val) let content = [].concat(children) - if (col) { + if (col ) { const handlerVNode = h(DragHandler, { props: { width: col.width, @@ -106,10 +106,15 @@ const ResizeHeaderOne = function(val, name) { handlerVNode ) } + console.log(restProps) + let className = '' + if ((restProps.attrs && restProps.attrs.colSpan && restProps.attrs.colSpan == 1) || (restProps.attrs && restProps.attrs.colSpan && restProps.attrs.colSpan > 0)){ + className = ' second' + } return h('th', { key, props: { col }, - ...Object.assign({}, restProps, { class: (restProps.class || '') + ' nio-header-th' }) + ...Object.assign({}, restProps, { class: (restProps.class || '') + ' nio-header-th' + className}) }, content) } } diff --git a/jero-web/src/views/projectManagement/components/customizeList.vue b/jero-web/src/views/projectManagement/components/customizeList.vue index 0624fa28e..30b447500 100644 --- a/jero-web/src/views/projectManagement/components/customizeList.vue +++ b/jero-web/src/views/projectManagement/components/customizeList.vue @@ -11,26 +11,26 @@
- - - - - - - - - - - - + + + + + + + + + + + +
@@ -41,235 +41,538 @@ \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/listOfRegulations.vue b/jero-web/src/views/projectManagement/components/listOfRegulations.vue index 94a2a514c..9efd717f2 100644 --- a/jero-web/src/views/projectManagement/components/listOfRegulations.vue +++ b/jero-web/src/views/projectManagement/components/listOfRegulations.vue @@ -215,7 +215,7 @@ { this.getAndUserId() @@ -1523,6 +1525,9 @@ this.selectedRowKeys = [] this.getList() }, + customizeListForm(val){ + this.getHeader() + }, transferListForm(id){ this.$refs.transferListvirtalRef.transferModel(id) }, @@ -1554,6 +1559,58 @@ } this.getList() }, + getHeader(){ + getAction('head/headCustomEO/list', { + moduleFlag:'法规清单' + }).then((res) => { + if (res.success) { + console.log(res.result) + if(res.result.length != 0){ + this.columnsAll = res.result + }else{ + this.columnsAll = this.column + } + this.columnsAll.forEach((item,index) => { + if(item.title != '设计符合性确认' && item.title != 'Pre-Homo确认' && item.title != '验证符合性确认'){ + item.width = 180 + item.align = 'left' + if(item.title == '操作'){ + item.scopedSlots = { + customRender: 'operationOne' + } + }else if(item.title == '编号'){ + item.sorter = true + item.scopedSlots = { + customRender: 'standard' + } + }else if(item.title == '标题'){ + item.scopedSlots = { + customRender: 'titleName' + } + } + else if(item.title == '清单确认状态' || item.title == '任务确认状态' || item.title == '认证级别' || item.title == 'WVTA ID' || + item.title == '责任领域' || item.title == '法规工程师' || item.title == '认证工程师' || item.title == '工程接口人'){ + item.sorter = true + } + }else { + delete item.dataIndex + delete item.fixed + item.children.forEach((val,index) => { + val.width = 180 + val.align = 'left' + val.ellipsis = true + }) + } + }) + console.log(this.columnsAll) + this.loading = false + this.JLoading = false + } else { + this.JLoading = false + this.loading = false + } + }) + }, getList() { let roleCode if (this.isDisplay) { @@ -2269,7 +2326,7 @@ }) }, customizeClick(){ - this.$refs.customizeListRef.transferModel() + this.$refs.customizeListRef.transferModel(this.columnsAll) }, bringInRelevantPersonnelClick() { let _this = this @@ -2615,12 +2672,18 @@ width: 100% !important; } - .tableList .ant-table-thead > tr > th { - padding: 0px 16px !important; + //.customizetable .ant-table-thead > tr > th { + // height: 46px !important; + //padding: 8px 8px !important; //font-weight: bold; //background: #f3f6f6; + //} + .ant-table-row-cell-ellipsis{ + padding: 0!important; + } + .second{ + padding: 0!important; } - //.tableList .ant-table-tbody > tr > td{ // color: #040B29 ; //}