From c8e3209f58349c2c328013b60805a78d283d936d Mon Sep 17 00:00:00 2001 From: wangjingsheng Date: Sat, 12 Mar 2022 13:34:54 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=93=E6=9E=84=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../utils/DataStructureHandleUtils.java | 79 +++++++++++ .../com/pms/ocp/common/utils/MapUtils.java | 32 ----- .../com/pms/ocp/common/utils/PageRequest.java | 2 +- ...StringUtil.java => RandomStringUtils.java} | 5 +- .../ocp/controller/ModelBaseController.java | 28 +++- .../java/com/pms/ocp/model/entity/Model.java | 4 +- .../com/pms/ocp/model/entity/ModelNoteVO.java | 131 ++++++++++++++++++ .../impl/ModelClassifyServiceImpl.java | 1 - .../service/impl/OcpApiTreeServiceImpl.java | 7 +- .../ocp/service/impl/TenantServiceImpl.java | 7 +- 10 files changed, 243 insertions(+), 53 deletions(-) create mode 100644 src/main/java/com/pms/ocp/common/utils/DataStructureHandleUtils.java delete mode 100644 src/main/java/com/pms/ocp/common/utils/MapUtils.java rename src/main/java/com/pms/ocp/common/utils/{RandomStringUtil.java => RandomStringUtils.java} (87%) create mode 100644 src/main/java/com/pms/ocp/model/entity/ModelNoteVO.java diff --git a/src/main/java/com/pms/ocp/common/utils/DataStructureHandleUtils.java b/src/main/java/com/pms/ocp/common/utils/DataStructureHandleUtils.java new file mode 100644 index 0000000..d23dd3b --- /dev/null +++ b/src/main/java/com/pms/ocp/common/utils/DataStructureHandleUtils.java @@ -0,0 +1,79 @@ +package com.pms.ocp.common.utils; + +import org.apache.commons.lang3.StringUtils; + +import java.lang.reflect.Field; +import java.math.BigDecimal; +import java.sql.Date; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @Auther: wangjian + * @Date: 2022/3/12 13:29 + * @Description:数据结构处理工具类 + */ +public class DataStructureHandleUtils { + /** + * List> 到 List 数据转换 + */ + public static List setList(final List> srcList, Class clazz) { + List list = new ArrayList<>(); + for (int i = 0; i < srcList.size(); i++) { + try { + T t = clazz.newInstance(); + Field[] fields = t.getClass().getDeclaredFields(); + for (Field field : fields) { + if (!"serialVersionUID".equals(field.getName())) { + //设置对象的访问权限,保证对private的属性的访问 + field.setAccessible(true); + //读取配置转换字段名,并从map中取出数据 + Object v = srcList.get(i).get(field.getName()); + field.set(t, convert(v, field.getType())); + } + } + list.add(t); + } catch (Exception ex) { + ex.toString(); + } + + } + ; + return list; + } + + /** + * 字段类型转换 + */ + private static T convert(Object obj, Class type) throws ParseException { + if (obj != null && StringUtils.isNotBlank(obj.toString())) { + if (type.equals(String.class)) { + return (T) obj.toString(); + } else if (type.equals(BigDecimal.class)) { + return (T) new BigDecimal(obj.toString()); + } else if (type.equals(Double.class)) { + return (T) Double.valueOf(obj.toString()); + } else if (type.equals(Integer.class)) { + return (T) Integer.valueOf(obj.toString()); + } else if (type.equals(Date.class)) { + if (obj != null) { + String timeStr = String.valueOf(obj); + String s[] = timeStr.split("T"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + return (T) sdf.parse(s[0] + " " + s[1]); + } else { + return null; + } + } else { + //其他类型转换 + return (T) obj.toString(); + } + + } + return null; + } + +} diff --git a/src/main/java/com/pms/ocp/common/utils/MapUtils.java b/src/main/java/com/pms/ocp/common/utils/MapUtils.java deleted file mode 100644 index 26dc69c..0000000 --- a/src/main/java/com/pms/ocp/common/utils/MapUtils.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.pms.ocp.common.utils; - -import java.util.*; - -/** - * @Author: admin - * @Description: - * @Date: 2021/12/8 9:31 - * @Version: V1.0 - */ -public class MapUtils { - - /** - * Map 排序 - * - * @param map - * @return Map - */ - public static Map> treeMapDesc(Map> map) { - Map> treeMapDesc = new TreeMap<>(new Comparator() { - - @Override - public int compare(Date o1, Date o2) { - return o2.compareTo(o1); - } - }); - for (Map.Entry> e : map.entrySet()) { - treeMapDesc.put(e.getKey(), e.getValue()); - } - return treeMapDesc; - } -} diff --git a/src/main/java/com/pms/ocp/common/utils/PageRequest.java b/src/main/java/com/pms/ocp/common/utils/PageRequest.java index ad0c4bd..3c6b581 100644 --- a/src/main/java/com/pms/ocp/common/utils/PageRequest.java +++ b/src/main/java/com/pms/ocp/common/utils/PageRequest.java @@ -10,7 +10,7 @@ import lombok.Data; * @author admin */ @Data -@ApiModel(value = "分页工具类",description = "分页工具类") +@ApiModel(value = "分页工具类", description = "分页工具类") public class PageRequest { private static final long serialVersionUID = 8167917284229912157L; diff --git a/src/main/java/com/pms/ocp/common/utils/RandomStringUtil.java b/src/main/java/com/pms/ocp/common/utils/RandomStringUtils.java similarity index 87% rename from src/main/java/com/pms/ocp/common/utils/RandomStringUtil.java rename to src/main/java/com/pms/ocp/common/utils/RandomStringUtils.java index c90e3e4..40c89cd 100644 --- a/src/main/java/com/pms/ocp/common/utils/RandomStringUtil.java +++ b/src/main/java/com/pms/ocp/common/utils/RandomStringUtils.java @@ -1,15 +1,12 @@ package com.pms.ocp.common.utils; - -import org.apache.commons.lang3.RandomStringUtils; - import java.util.Random; /** * @author zhaochengming * 随机生成字符串 */ -public class RandomStringUtil { +public class RandomStringUtils { /** * length 字符串长度 diff --git a/src/main/java/com/pms/ocp/controller/ModelBaseController.java b/src/main/java/com/pms/ocp/controller/ModelBaseController.java index 61c4932..cfcdda6 100644 --- a/src/main/java/com/pms/ocp/controller/ModelBaseController.java +++ b/src/main/java/com/pms/ocp/controller/ModelBaseController.java @@ -1,5 +1,7 @@ package com.pms.ocp.controller; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.pms.ocp.common.utils.ExcelUtils; import com.pms.ocp.model.dto.ModelDTO; import com.pms.ocp.model.dto.ModelIssueDTO; @@ -7,6 +9,7 @@ import com.pms.ocp.model.dto.ModelPropertyDTO; import com.pms.ocp.model.dto.ModelRelationDTO; import com.pms.ocp.model.entity.Model; import com.pms.ocp.model.entity.ModelNote; +import com.pms.ocp.model.entity.ModelNoteVO; import com.pms.ocp.model.vo.ResponseVO; import com.pms.ocp.service.*; import io.swagger.annotations.Api; @@ -14,6 +17,7 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; 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.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -21,6 +25,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; +import java.util.stream.Collectors; import static com.pms.ocp.common.constants.CodeEnum.REQUIRED_PARAMETER_EMPTY; @@ -71,8 +76,15 @@ public class ModelBaseController { @ApiOperation("模型-查询") @GetMapping("/get/model") public ResponseVO getModel(@ApiParam(value = "模型订阅编号") @RequestParam(value = "objId", required = false) String objId, - @ApiParam(value = "模型编码") @RequestParam(value = "modelCode", required = false) String modelCode) { - return ResponseVO.ok(modelService.getModelList(objId, modelCode)); + @ApiParam(value = "模型编码") @RequestParam(value = "modelCode", required = false) String modelCode, + @ApiParam(value = "当前页") @RequestParam(value = "currentPage", required = false) Integer currentPage, + @ApiParam(value = "每页数量") @RequestParam(value = "pageSize", required = false) Integer pageSize) { + + PageHelper.startPage(currentPage, pageSize); + List opsVOList = modelService.getModelList(objId, modelCode); + PageInfo pageInfo = new PageInfo<>(opsVOList); + + return ResponseVO.ok(pageInfo); } /** @@ -201,9 +213,17 @@ public class ModelBaseController { @PostMapping("export/model/note") public ResponseVO exportModelNote(HttpServletResponse response, @ApiParam(value = "模型编码") @RequestParam(value = "modelCode", required = false) String modelCode) throws IOException { -// 查询要导出的数据 + // 查询要导出的数据 List modelNoteList = modelNoteService.getModelNoteList(modelCode); - ExcelUtils.exportExcel(response, "测试导出模型事记", "测试导出模型事记", "测试导出模型事记.xlsx", modelNoteList, ModelNote.class); + + //users集合转成export集合 + List exportVOList = modelNoteList.stream().map(modelNote -> { + ModelNoteVO vo = new ModelNoteVO(); + BeanUtils.copyProperties(modelNote, vo); + return vo; + }).collect(Collectors.toList()); + + ExcelUtils.exportExcel(response, "测试导出模型事记", "测试导出模型事记", "测试导出模型事记.xlsx", exportVOList, ModelNoteVO.class); return ResponseVO.ok(); } diff --git a/src/main/java/com/pms/ocp/model/entity/Model.java b/src/main/java/com/pms/ocp/model/entity/Model.java index 152c3dd..e797933 100644 --- a/src/main/java/com/pms/ocp/model/entity/Model.java +++ b/src/main/java/com/pms/ocp/model/entity/Model.java @@ -1,6 +1,8 @@ package com.pms.ocp.model.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; import lombok.Data; @@ -24,7 +26,7 @@ public class Model { * 模型关系编号 * 主键 */ - @TableField("obj_id") + @TableId(value = "obj_id", type = IdType.ASSIGN_ID) private String objId; /** diff --git a/src/main/java/com/pms/ocp/model/entity/ModelNoteVO.java b/src/main/java/com/pms/ocp/model/entity/ModelNoteVO.java new file mode 100644 index 0000000..da5cf82 --- /dev/null +++ b/src/main/java/com/pms/ocp/model/entity/ModelNoteVO.java @@ -0,0 +1,131 @@ +package com.pms.ocp.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * @Auther: wangjian + * @Date: 2022/2/22 16:52 + * @Description:模型事记记录对象VO + */ + +@ApiModel(value = "模型事记VO对象") +@Data +public class ModelNoteVO { + + /** + * 模型事记编号 + */ + @ApiModelProperty(value = "模型事记编号") + @TableId(value = "obj_id", type = IdType.ASSIGN_ID) + private String objId; + + /** + * 模型编码 + */ + @ApiModelProperty(value = "模型事记编号") + private int modelCode; + + /** + * 属性编码 + */ + @ApiModelProperty(value = "属性代码") + private int propCode; + + /** + * 事记类型 0:人工操作,1:流程管控,3:总部下发 + */ + @ApiModelProperty(value = "事记类型 0:人工操作,1:流程管控,3:总部下发") + private int auditType; + + /** + * 模型异动详情 + */ + @ApiModelProperty(value = "模型异动详情") + private String auditMessageJson; + + /** + * 异动类型 0:新增,1:迭代 + */ + @ApiModelProperty(value = "异动类型 0:新增,1:迭代") + private int operStatus; + + /** + * 异动申请人编号 + */ + @ApiModelProperty(value = "异动申请人编号") + private String applyUserId; + + /** + * 异动申请人姓名 + */ + @ApiModelProperty(value = "异动申请人姓名") + private String applyUserName; + + /** + * 异动时间 + */ + @ApiModelProperty(value = "异动时间") + private long applyTime; + + /** + * 版本 + */ + @ApiModelProperty(value = "版本") + private String applyVersion; + + /** + * 新增时间 + */ + @ApiModelProperty(value = "新增时间") + private LocalDateTime auditCtime; + + /** + * 异动公司编码 + */ + @ApiModelProperty(value = "异动公司编码") + private String auditCompanyCode; + + /** + * 提交人编号 + */ + @ApiModelProperty(value = "提交人编号") + private String auditUserId; + + /** + * 提交人姓名 + */ + @ApiModelProperty(value = "提交人姓名") + private String auditUserName; + + /** + * 修改时间 + */ + @ApiModelProperty(value = "模型事记修改时间") + private LocalDateTime auditMtime; + +} + +// +// COMMENT ON COLUMN public.ocp_model_audit.obj_id IS '主键是'; +// COMMENT ON COLUMN public.ocp_model_audit.model_code IS '模型代码是'; +// COMMENT ON COLUMN public.ocp_model_audit.prop_code IS '属性代码'; +// COMMENT ON COLUMN public.ocp_model_audit.oper_status IS '异动类型0:新增,1:迭代'; +// COMMENT ON COLUMN public.ocp_model_audit.oper_target IS '操作对象0:表,1:属性'; +// COMMENT ON COLUMN public.ocp_model_audit.audit_type IS '事记类型0:人工操作,1:流程管控,3:总部下发'; +// COMMENT ON COLUMN public.ocp_model_audit.audit_message_json IS '模型异动详情'; +// COMMENT ON COLUMN public.ocp_model_audit.apply_user_id IS '异动申请人id'; +// COMMENT ON COLUMN public.ocp_model_audit.apply_user_name IS '异动申请人'; +// COMMENT ON COLUMN public.ocp_model_audit.apply_time IS '异动时间'; +// COMMENT ON COLUMN public.ocp_model_audit.audit_ctime IS '申请时间'; +// COMMENT ON COLUMN public.ocp_model_audit.audit_mtime IS '修改时间'; +// COMMENT ON COLUMN public.ocp_model_audit.apply_version IS '版本'; +// COMMENT ON COLUMN public.ocp_model_audit.audit_company_code IS '异动公司code'; +// COMMENT ON COLUMN public.ocp_model_audit.audit_user_id IS '提交人id'; +// COMMENT ON COLUMN public.ocp_model_audit.audit_user_name IS '提交人姓名'; diff --git a/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java index f4be2d5..3fccfd5 100644 --- a/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java @@ -136,7 +136,6 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { return childList; } - /** * 构建树节点 * @author huxiuwu diff --git a/src/main/java/com/pms/ocp/service/impl/OcpApiTreeServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/OcpApiTreeServiceImpl.java index cdb045d..e2b12a5 100644 --- a/src/main/java/com/pms/ocp/service/impl/OcpApiTreeServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/OcpApiTreeServiceImpl.java @@ -5,11 +5,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.pms.ocp.common.utils.RandomStringUtil; +import com.pms.ocp.common.utils.RandomStringUtils; import com.pms.ocp.mapper.OcpApiBaseMapper; import com.pms.ocp.mapper.OcpApiTreeMapper; import com.pms.ocp.model.dto.*; -import com.pms.ocp.model.entity.OcpApiBase; import com.pms.ocp.model.entity.OcpApiGroup; import com.pms.ocp.service.OcpApiTreeService; @@ -19,11 +18,9 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.sql.Date; import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; -import java.util.function.Consumer; @Service @@ -162,7 +159,7 @@ public class OcpApiTreeServiceImpl extends ServiceImpl ocpApiGroups = mapper.selectList(null); for (OcpApiGroup ocpApiGroup : ocpApiGroups) { diff --git a/src/main/java/com/pms/ocp/service/impl/TenantServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/TenantServiceImpl.java index 1ecc1c1..84f6119 100644 --- a/src/main/java/com/pms/ocp/service/impl/TenantServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/TenantServiceImpl.java @@ -3,15 +3,12 @@ package com.pms.ocp.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.pms.ocp.common.utils.RandomStringUtil; +import com.pms.ocp.common.utils.RandomStringUtils; import com.pms.ocp.mapper.TenantBasicManagementMapper; import com.pms.ocp.mapper.TenantMapper; import com.pms.ocp.model.dto.*; -import com.pms.ocp.model.entity.OcpApiGroup; -import com.pms.ocp.model.entity.OcpTenantAudit; import com.pms.ocp.model.entity.OcpTenantBase; import com.pms.ocp.model.entity.OcpTenantGroup; import com.pms.ocp.service.TenantService; @@ -118,7 +115,7 @@ public class TenantServiceImpl extends ServiceImpl break; } } - String randomString = RandomStringUtil.getRandomString(6); + String randomString = RandomStringUtils.getRandomString(6); Timestamp timestamp = new Timestamp(System.currentTimeMillis()); OcpTenantGroup ocpTenantGroup = new OcpTenantGroup(); BeanUtils.copyProperties(tenanBaseDto,ocpTenantGroup); -- 2.26.0