diff --git a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql index 167801aa3..1eb94cb36 100644 --- a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql +++ b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql @@ -300,3 +300,28 @@ ALTER TABLE `project_certification_inventory` ADD COLUMN `certification_progress_remark` varchar(2000) NULL COMMENT '认证进度备注' AFTER `certification_progress`; -- 将之前的任务清单-认证进度,修改为 认证清单-认证进度 2023-03-08 未同步生产环境 UPDATE `sys_dict` SET `dict_name` = '认证清单-认证进度', `description` = '认证清单-认证进度' WHERE `id` = '1524311122804346881'; +-- 认证虚拟清单订阅表 2023-03-10 未同步生产环境 +CREATE TABLE `auth_dummy_read` ( + `id` varchar(36) NOT NULL, + `create_by` varchar(50) DEFAULT NULL COMMENT '创建人', + `create_time` datetime DEFAULT NULL COMMENT '创建日期', + `update_by` varchar(50) DEFAULT NULL COMMENT '更新人', + `update_time` datetime DEFAULT NULL COMMENT '更新日期', + `sys_org_code` varchar(64) DEFAULT NULL COMMENT '所属部门', + `auth_dummy_inventory_base_id` varchar(32) DEFAULT NULL COMMENT '虚拟认证清单基础表id', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +-- 认证虚拟清单系统维护表 2023-03-10 未同步生产环境 +CREATE TABLE `auth_dummy_content_change` ( + `id` varchar(36) NOT NULL, + `create_by` varchar(50) DEFAULT NULL COMMENT '创建人', + `create_time` datetime DEFAULT NULL COMMENT '创建日期', + `update_by` varchar(50) DEFAULT NULL COMMENT '更新人', + `update_time` datetime DEFAULT NULL COMMENT '更新日期', + `sys_org_code` varchar(64) DEFAULT NULL COMMENT '所属部门', + `connect_id` varchar(32) DEFAULT NULL COMMENT '虚拟认证清单基础表id或虚拟认证清单详情表中的baseId', + `parent_id` varchar(32) DEFAULT NULL COMMENT '父id', + `content_json` longtext COMMENT '内容', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/controller/AuthDummyContentChangeEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/controller/AuthDummyContentChangeEOController.java new file mode 100644 index 000000000..ed3e7cb64 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/controller/AuthDummyContentChangeEOController.java @@ -0,0 +1,170 @@ +package com.jero.modules.authDummy.controller; + +import java.util.Arrays; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import com.jero.common.api.vo.Result; +import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.authDummy.entity.AuthDummyContentChangeEO; +import com.jero.modules.authDummy.service.IAuthDummyContentChangeEOService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +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-03-10 + * @Version: V1.0 + */ +@Api(tags="虚拟认证清单系统维护表") +@RestController +@RequestMapping("/com.jero.modules.authDummy/authDummyContentChangeEO") +@Slf4j +public class AuthDummyContentChangeEOController extends JeroController { + @Autowired + private IAuthDummyContentChangeEOService authDummyContentChangeEOService; + + /** + * 分页列表查询 + * + * @param authDummyContentChangeEO + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "虚拟认证清单系统维护表-分页列表查询") + @ApiOperation(value="虚拟认证清单系统维护表-分页列表查询", notes="虚拟认证清单系统维护表-分页列表查询") + @GetMapping(value = "/page") + public Result queryPageList(AuthDummyContentChangeEO authDummyContentChangeEO, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(authDummyContentChangeEO, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = authDummyContentChangeEOService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 列表查询 + * + * @return + */ + @AutoLog(value = "虚拟认证清单系统维护表-列表查询") + @ApiOperation(value="虚拟认证清单系统维护表-列表查询", notes="虚拟认证清单系统维护表-列表查询") + @GetMapping(value = "/list") + public Result> queryList() { + List list = authDummyContentChangeEOService.queryList(); + return Result.OK(list); + } + + /** + * 添加 + * + * @param authDummyContentChangeEO + * @return + */ + @AutoLog(value = "虚拟认证清单系统维护表-添加") + @ApiOperation(value="虚拟认证清单系统维护表-添加", notes="虚拟认证清单系统维护表-添加") + @PostMapping(value = "/add") + public Result add(@Validated @RequestBody AuthDummyContentChangeEO authDummyContentChangeEO) { + authDummyContentChangeEOService.add(authDummyContentChangeEO); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param authDummyContentChangeEO + * @return + */ + @AutoLog(value = "虚拟认证清单系统维护表-编辑") + @ApiOperation(value="虚拟认证清单系统维护表-编辑", notes="虚拟认证清单系统维护表-编辑") + @PutMapping(value = "/edit") + public Result edit(@Validated @RequestBody AuthDummyContentChangeEO authDummyContentChangeEO) { + authDummyContentChangeEOService.editById(authDummyContentChangeEO); + 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) { + authDummyContentChangeEOService.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.authDummyContentChangeEOService.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) { + AuthDummyContentChangeEO authDummyContentChangeEO = authDummyContentChangeEOService.queryById(id); + if(authDummyContentChangeEO==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(authDummyContentChangeEO); + } + + /** + * 导出excel + * + * @param request + * @param authDummyContentChangeEO + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, AuthDummyContentChangeEO authDummyContentChangeEO) { + return super.exportXls(request, authDummyContentChangeEO, AuthDummyContentChangeEO.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, AuthDummyContentChangeEO.class); + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/controller/AuthDummyInventoryBaseEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/controller/AuthDummyInventoryBaseEOController.java index 1d8fa12e2..88debee9e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/controller/AuthDummyInventoryBaseEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/controller/AuthDummyInventoryBaseEOController.java @@ -7,14 +7,18 @@ import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson.JSONObject; import com.jero.common.api.vo.Result; +import com.jero.common.constant.enums.CutEnum; import com.jero.common.system.query.QueryGenerator; import com.jero.modules.authDummy.entity.AuthDummyInventoryBaseEO; import com.jero.modules.authDummy.service.IAuthDummyInventoryBaseEOService; 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.dummy.entity.DummyInventoryBaseEO; +import com.jero.modules.dummy.enums.InventoryStateEnum; import lombok.extern.slf4j.Slf4j; import com.jero.common.system.base.controller.JeroController; +import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -177,4 +181,65 @@ public class AuthDummyInventoryBaseEOController extends JeroController batchIssueOrWithdraw(@RequestBody JSONObject json) { return this.authDummyInventoryBaseEOService.batchIssueOrWithdraw(json); } + + @AutoLog(value = "订阅") + @ApiOperation(value="订阅", notes="订阅") + @GetMapping(value = "/read") +// @RequiresPermissions("dummyInventoryBase:read") + public Result read(@RequestParam(name="id",required=true) String id){ + try { + authDummyInventoryBaseEOService.read(id); + } catch (Exception e) { + return Result.OK("订阅失败"); + } + return Result.OK("订阅成功"); + } + + @AutoLog(value = "取消订阅") + @ApiOperation(value="取消订阅", notes="取消订阅") + @GetMapping(value = "/cancelRead") +// @RequiresPermissions("dummyInventoryBase:cancelRead") + public Result cancelRead(String id){ + try { + authDummyInventoryBaseEOService.cancelRead(id); + } catch (Exception e) { + return Result.OK("取消订阅失败"); + } + return Result.OK("取消订阅成功"); + } + + /** + * 发布 + * + * @param authDummyInventoryBaseEO + * @return + */ + @AutoLog(value = "发布") + @ApiOperation(value="发布", notes="发布") + @PostMapping(value = "/issue") +// @RequiresPermissions("dummyInventoryBase:issue") + public Result issue(@Validated @RequestBody AuthDummyInventoryBaseEO authDummyInventoryBaseEO) { + try { + authDummyInventoryBaseEOService.issue(authDummyInventoryBaseEO); + } catch (Exception e) { + if(CutEnum.CN.getValue().equals(authDummyInventoryBaseEO.getCut())){ + return Result.error("发布失败"); + }else{ + return Result.error("Post failure!"); + } + } + if(InventoryStateEnum.ISSUE.getValue().equals(authDummyInventoryBaseEO.getState())) { + if (CutEnum.CN.getValue().equals(authDummyInventoryBaseEO.getCut())) { + return Result.OK().success("发布成功"); + } else { + return Result.OK().success("Release success!"); + } + }else { + if (CutEnum.CN.getValue().equals(authDummyInventoryBaseEO.getCut())) { + return Result.OK().success("撤回成功"); + } else { + return Result.OK().success("Withdrawal succeeded!"); + } + } + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/controller/AuthDummyInventoryInfoEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/controller/AuthDummyInventoryInfoEOController.java index 267283442..2a4b76419 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/controller/AuthDummyInventoryInfoEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/controller/AuthDummyInventoryInfoEOController.java @@ -13,11 +13,13 @@ import com.jero.modules.authDummy.service.IAuthDummyInventoryInfoEOService; 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.dummy.entity.DummyInventoryInfoEO; 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.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -157,6 +159,38 @@ public class AuthDummyInventoryInfoEOController extends JeroController importData(@RequestParam(value = "file", required = false) MultipartFile file, + AuthDummyInventoryInfoEO authDummyInventoryInfoEO) { + try { + authDummyInventoryInfoEOService.importData(file, authDummyInventoryInfoEO); + } catch (Exception e) { + e.printStackTrace(); + } + return Result.OK("导入成功"); + } + /** * 通过excel导入数据 * @@ -184,11 +218,11 @@ public class AuthDummyInventoryInfoEOController extends JeroController setBatch(@RequestBody AuthDummyInventoryInfoEO authDummyInventoryInfoEO) { return this.authDummyInventoryInfoEOService.setBatch(authDummyInventoryInfoEO); } - - @AutoLog(value = "认证虚拟清单详情表-批量添加") - @ApiOperation(value="认证虚拟清单详情表-批量添加", notes="认证虚拟清单详情表-批量添加") - @PostMapping(value = "/batchAdd") - public Result batchAdd(@RequestBody JSONObject json) { - return this.authDummyInventoryInfoEOService.batchAdd(json); - } +// +// @AutoLog(value = "认证虚拟清单详情表-批量添加") +// @ApiOperation(value="认证虚拟清单详情表-批量添加", notes="认证虚拟清单详情表-批量添加") +// @PostMapping(value = "/batchAdd") +// public Result batchAdd(@RequestBody JSONObject json) { +// return this.authDummyInventoryInfoEOService.batchAdd(json); +// } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/controller/AuthDummyReadEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/controller/AuthDummyReadEOController.java new file mode 100644 index 000000000..d978bb0ad --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/controller/AuthDummyReadEOController.java @@ -0,0 +1,170 @@ +package com.jero.modules.authDummy.controller; + +import java.util.Arrays; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import com.jero.common.api.vo.Result; +import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.authDummy.entity.AuthDummyReadEO; +import com.jero.modules.authDummy.service.IAuthDummyReadEOService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +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-03-10 + * @Version: V1.0 + */ +@Api(tags="虚拟认证清单订阅表") +@RestController +@RequestMapping("/com.jero.modules.authDummy.entity/authDummyReadEO") +@Slf4j +public class AuthDummyReadEOController extends JeroController { + @Autowired + private IAuthDummyReadEOService authDummyReadEOService; + + /** + * 分页列表查询 + * + * @param authDummyReadEO + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "虚拟认证清单订阅表-分页列表查询") + @ApiOperation(value="虚拟认证清单订阅表-分页列表查询", notes="虚拟认证清单订阅表-分页列表查询") + @GetMapping(value = "/page") + public Result queryPageList(AuthDummyReadEO authDummyReadEO, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(authDummyReadEO, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = authDummyReadEOService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 列表查询 + * + * @return + */ + @AutoLog(value = "虚拟认证清单订阅表-列表查询") + @ApiOperation(value="虚拟认证清单订阅表-列表查询", notes="虚拟认证清单订阅表-列表查询") + @GetMapping(value = "/list") + public Result> queryList() { + List list = authDummyReadEOService.queryList(); + return Result.OK(list); + } + + /** + * 添加 + * + * @param authDummyReadEO + * @return + */ + @AutoLog(value = "虚拟认证清单订阅表-添加") + @ApiOperation(value="虚拟认证清单订阅表-添加", notes="虚拟认证清单订阅表-添加") + @PostMapping(value = "/add") + public Result add(@Validated @RequestBody AuthDummyReadEO authDummyReadEO) { + authDummyReadEOService.add(authDummyReadEO); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param authDummyReadEO + * @return + */ + @AutoLog(value = "虚拟认证清单订阅表-编辑") + @ApiOperation(value="虚拟认证清单订阅表-编辑", notes="虚拟认证清单订阅表-编辑") + @PutMapping(value = "/edit") + public Result edit(@Validated @RequestBody AuthDummyReadEO authDummyReadEO) { + authDummyReadEOService.editById(authDummyReadEO); + 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) { + authDummyReadEOService.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.authDummyReadEOService.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) { + AuthDummyReadEO authDummyReadEO = authDummyReadEOService.queryById(id); + if(authDummyReadEO==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(authDummyReadEO); + } + + /** + * 导出excel + * + * @param request + * @param authDummyReadEO + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, AuthDummyReadEO authDummyReadEO) { + return super.exportXls(request, authDummyReadEO, AuthDummyReadEO.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, AuthDummyReadEO.class); + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyContentChangeEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyContentChangeEO.java new file mode 100644 index 000000000..a5f77212f --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyContentChangeEO.java @@ -0,0 +1,79 @@ +package com.jero.modules.authDummy.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-03-10 + * @Version: V1.0 + */ +@Data +@TableName("auth_dummy_content_change") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="auth_dummy_content_change对象", description="虚拟认证清单系统维护表") +public class AuthDummyContentChangeEO 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或虚拟认证清单详情表中的baseId*/ + @Excel(name = "虚拟认证清单基础表id或虚拟认证清单详情表中的baseId", width = 15) + @ApiModelProperty(value = "虚拟认证清单基础表id或虚拟认证清单详情表中的baseId") + private java.lang.String connectId; + + /**父id*/ + @Excel(name = "父id", width = 15) + @ApiModelProperty(value = "父id") + private java.lang.String parentId; + + /**内容*/ + @Excel(name = "内容", width = 15) + @ApiModelProperty(value = "内容") + private java.lang.String contentJson; + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryBaseEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryBaseEO.java index a24a48afb..43b6dfcc6 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryBaseEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryBaseEO.java @@ -4,6 +4,7 @@ import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; 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 lombok.Data; @@ -77,4 +78,6 @@ public class AuthDummyInventoryBaseEO implements Serializable { @Dict(dicCode = "ren4_zheng4_xu1_ni3_qing1_dan1_zhuang4_tai4") private java.lang.String state; + @TableField(exist = false) + private String cut; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryInfoEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryInfoEO.java index 8bbc125f1..8dee0aa8a 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryInfoEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryInfoEO.java @@ -73,7 +73,7 @@ public class AuthDummyInventoryInfoEO implements Serializable { private java.lang.String inspectionItem; /**配置项*/ - @Excel(name = "配置项", width = 15) +// @Excel(name = "配置项", width = 15) @ApiModelProperty(value = "配置项") private java.lang.String configItem; @@ -83,8 +83,8 @@ public class AuthDummyInventoryInfoEO implements Serializable { private java.lang.String wvtaId; /**标准编号*/ - @Excel(name = "标准编号", width = 15) - @ApiModelProperty(value = "标准编号") + @Excel(name = "编号", width = 15) + @ApiModelProperty(value = "编号") private java.lang.String serialNumber; /**责任领域*/ @@ -98,12 +98,12 @@ public class AuthDummyInventoryInfoEO implements Serializable { private java.lang.String deliverable; /**文档库id*/ - @Excel(name = "文档库id", width = 15) +// @Excel(name = "文档库id", width = 15) @ApiModelProperty(value = "文档库id") private java.lang.String bussDocumentLibraryId; /**认证虚拟清单基础表id*/ - @Excel(name = "认证虚拟清单基础表id", width = 15) +// @Excel(name = "认证虚拟清单基础表id", width = 15) @ApiModelProperty(value = "认证虚拟清单基础表id") private java.lang.String authDummyInventoryBaseId; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryInfoEOEn.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryInfoEOEn.java new file mode 100644 index 000000000..68000c14f --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryInfoEOEn.java @@ -0,0 +1,113 @@ +package com.jero.modules.authDummy.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 io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + + +/** + * @Description: 认证虚拟清单详情表 + * @Author: jero-boot + * @Date: 2023-03-02 + * @Version: V1.0 + */ +@Data +@TableName("auth_dummy_inventory_info") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="auth_dummy_inventory_info对象", description="认证虚拟清单详情表") +public class AuthDummyInventoryInfoEOEn implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private String id; + + /**创建人*/ + @ApiModelProperty(value = "创建人") + private 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 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 String sysOrgCode; + + /**类别*/ + @Excel(name = "Category", width = 15) + @ApiModelProperty(value = "类别") + private String category; + + /**检验项目*/ + @Excel(name = "Inspection Items", width = 15) + @ApiModelProperty(value = "检验项目") + private String inspectionItem; + + /**配置项*/ +// @Excel(name = "配置项", width = 15) + @ApiModelProperty(value = "配置项") + private String configItem; + + /**WVTA ID*/ + @Excel(name = "WVTA ID", width = 15) + @ApiModelProperty(value = "WVTA ID") + private String wvtaId; + + /**标准编号*/ + @Excel(name = "Number", width = 15) + @ApiModelProperty(value = "标准编号") + private String serialNumber; + + /**责任领域*/ + @Excel(name = "Responsible Field", width = 15) + @ApiModelProperty(value = "责任领域") + private String dutyTerritory; + + /**交付物*/ + @Excel(name = "Deliverables", width = 15) + @ApiModelProperty(value = "交付物") + private String deliverable; + + /**文档库id*/ +// @Excel(name = "文档库id", width = 15) + @ApiModelProperty(value = "文档库id") + private String bussDocumentLibraryId; + + /**认证虚拟清单基础表id*/ +// @Excel(name = "认证虚拟清单基础表id", width = 15) + @ApiModelProperty(value = "认证虚拟清单基础表id") + private String authDummyInventoryBaseId; + + + @TableField(exist = false) + private String cut; + + @TableField(exist = false) + private String ids; +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyReadEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyReadEO.java new file mode 100644 index 000000000..4f1057ecb --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyReadEO.java @@ -0,0 +1,69 @@ +package com.jero.modules.authDummy.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-03-10 + * @Version: V1.0 + */ +@Data +@TableName("auth_dummy_read") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="auth_dummy_read对象", description="虚拟认证清单订阅表") +public class AuthDummyReadEO 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 authDummyInventoryBaseId; + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/AuthDummyContentChangeEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/AuthDummyContentChangeEOMapper.java new file mode 100644 index 000000000..605197dbb --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/AuthDummyContentChangeEOMapper.java @@ -0,0 +1,14 @@ +package com.jero.modules.authDummy.mapper; + +import com.jero.modules.authDummy.entity.AuthDummyContentChangeEO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 虚拟认证清单系统维护表 + * @Author: jero-boot + * @Date: 2023-03-10 + * @Version: V1.0 + */ +public interface AuthDummyContentChangeEOMapper extends BaseMapper { + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/AuthDummyReadEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/AuthDummyReadEOMapper.java new file mode 100644 index 000000000..4d1c42adb --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/AuthDummyReadEOMapper.java @@ -0,0 +1,14 @@ +package com.jero.modules.authDummy.mapper; + +import com.jero.modules.authDummy.entity.AuthDummyReadEO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 虚拟认证清单订阅表 + * @Author: jero-boot + * @Date: 2023-03-10 + * @Version: V1.0 + */ +public interface AuthDummyReadEOMapper extends BaseMapper { + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/xml/AuthDummyContentChangeEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/xml/AuthDummyContentChangeEOMapper.xml new file mode 100644 index 000000000..6743af35e --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/xml/AuthDummyContentChangeEOMapper.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/xml/AuthDummyReadEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/xml/AuthDummyReadEOMapper.xml new file mode 100644 index 000000000..e87a45aa8 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/mapper/xml/AuthDummyReadEOMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyContentChangeEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyContentChangeEOService.java new file mode 100644 index 000000000..4a249f93d --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyContentChangeEOService.java @@ -0,0 +1,61 @@ +package com.jero.modules.authDummy.service; + +import com.jero.modules.authDummy.entity.AuthDummyContentChangeEO; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * @Description: 虚拟认证清单系统维护表 + * @Author: jero-boot + * @Date: 2023-03-10 + * @Version: V1.0 + */ +public interface IAuthDummyContentChangeEOService extends IService { + + /** + * 保存 + * + * @param authDummyContentChangeEO + * @return + */ + void add(AuthDummyContentChangeEO authDummyContentChangeEO); + + /** + * 更新 + * + * @param authDummyContentChangeEO + * @return + */ + void editById(AuthDummyContentChangeEO authDummyContentChangeEO); + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + AuthDummyContentChangeEO queryById(String id); + + /** + * 列表查询 + * + * @return + */ + List queryList(); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyInventoryBaseEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyInventoryBaseEOService.java index 0880349c3..944bd629f 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyInventoryBaseEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyInventoryBaseEOService.java @@ -74,4 +74,22 @@ public interface IAuthDummyInventoryBaseEOService extends IService datas, String cut); + + /** + * 订阅 + * @param dummyId + */ + void read(String dummyId); + + /** + * 取消订阅 + * @param dummyId + */ + void cancelRead(String dummyId); + + /** + * 发布 + * @param authDummyInventoryBaseEO + */ + void issue(AuthDummyInventoryBaseEO authDummyInventoryBaseEO)throws Exception; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyInventoryInfoEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyInventoryInfoEOService.java index 81ad84b8f..99f2a4651 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyInventoryInfoEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyInventoryInfoEOService.java @@ -1,9 +1,12 @@ package com.jero.modules.authDummy.service; -import com.alibaba.fastjson.JSONObject; import com.jero.common.api.vo.Result; import com.jero.modules.authDummy.entity.AuthDummyInventoryInfoEO; import com.baomidou.mybatisplus.extension.service.IService; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -77,9 +80,17 @@ public interface IAuthDummyInventoryInfoEOService extends IService setBatch(AuthDummyInventoryInfoEO authDummyInventoryInfoEO); /** - * 批量添加 - * @param json - * @return + * 导出数据 + * @param response + * @param request + * @param authDummyInventoryInfoEO */ - Result batchAdd(JSONObject json); + void exportData(HttpServletResponse response, HttpServletRequest request, AuthDummyInventoryInfoEO authDummyInventoryInfoEO); + + /** + * 数据导入 + * @param file + * @param authDummyInventoryInfoEO + */ + void importData(MultipartFile file, AuthDummyInventoryInfoEO authDummyInventoryInfoEO) throws Exception; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyReadEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyReadEOService.java new file mode 100644 index 000000000..07b8503d3 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/IAuthDummyReadEOService.java @@ -0,0 +1,64 @@ +package com.jero.modules.authDummy.service; + +import com.jero.modules.authDummy.entity.AuthDummyReadEO; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * @Description: 虚拟认证清单订阅表 + * @Author: jero-boot + * @Date: 2023-03-10 + * @Version: V1.0 + */ +public interface IAuthDummyReadEOService extends IService { + + /** + * 保存 + * + * @param authDummyReadEO + * @return + */ + void add(AuthDummyReadEO authDummyReadEO); + + /** + * 更新 + * + * @param authDummyReadEO + * @return + */ + void editById(AuthDummyReadEO authDummyReadEO); + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + AuthDummyReadEO queryById(String id); + + /** + * 列表查询 + * + * @return + */ + List queryList(); + + /**查询订阅虚拟清单的用户*/ + List queryReadUserInfo(String authDummyInventoryBaseId); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyContentChangeEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyContentChangeEOServiceImpl.java new file mode 100644 index 000000000..f61adab9f --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyContentChangeEOServiceImpl.java @@ -0,0 +1,89 @@ +package com.jero.modules.authDummy.service.impl; + +import com.jero.modules.authDummy.entity.AuthDummyContentChangeEO; +import com.jero.modules.authDummy.mapper.AuthDummyContentChangeEOMapper; +import com.jero.modules.authDummy.service.IAuthDummyContentChangeEOService; +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-03-10 + * @Version: V1.0 + */ +@Service +public class AuthDummyContentChangeEOServiceImpl extends ServiceImpl implements IAuthDummyContentChangeEOService { + + /** + * 保存 + * + * @param authDummyContentChangeEO + * @return + */ + @Override + public void add(AuthDummyContentChangeEO authDummyContentChangeEO) { + Date now = new Date(); + authDummyContentChangeEO.setCreateTime(now); + authDummyContentChangeEO.setUpdateTime(now); + save(authDummyContentChangeEO); + } + + /** + * 更新 + * + * @param authDummyContentChangeEO + * @return + */ + @Override + public void editById(AuthDummyContentChangeEO authDummyContentChangeEO) { + Date now = new Date(); + authDummyContentChangeEO.setUpdateTime(now); + saveOrUpdate(authDummyContentChangeEO); + } + + /** + * 通过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 AuthDummyContentChangeEO queryById(String id) { + return getById(id); + } + + /** + * 列表查询 + * + * @return + */ + @Override + public List queryList() { + return list(); + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryBaseEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryBaseEOServiceImpl.java index ce04ea584..5d56eb3ca 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryBaseEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryBaseEOServiceImpl.java @@ -1,27 +1,56 @@ package com.jero.modules.authDummy.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.jero.common.api.vo.Result; import com.jero.common.constant.enums.CutEnum; +import com.jero.common.constant.enums.MessageTypeEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; +import com.jero.modules.authDummy.entity.AuthDummyContentChangeEO; import com.jero.modules.authDummy.entity.AuthDummyInventoryBaseEO; +import com.jero.modules.authDummy.entity.AuthDummyInventoryInfoEO; +import com.jero.modules.authDummy.entity.AuthDummyReadEO; import com.jero.modules.authDummy.mapper.AuthDummyInventoryBaseEOMapper; +import com.jero.modules.authDummy.service.IAuthDummyContentChangeEOService; import com.jero.modules.authDummy.service.IAuthDummyInventoryBaseEOService; +import com.jero.modules.authDummy.service.IAuthDummyInventoryInfoEOService; +import com.jero.modules.authDummy.service.IAuthDummyReadEOService; +import com.jero.modules.document.service.impl.BussDocumentLibraryEOServiceImpl; +import com.jero.modules.dummy.entity.DummyContentChangeEO; +import com.jero.modules.dummy.entity.DummyInventoryBaseEO; +import com.jero.modules.dummy.entity.DummyInventoryInfoEO; +import com.jero.modules.dummy.entity.DummyReadEO; import com.jero.modules.dummy.enums.InventoryStateEnum; +import com.jero.modules.feishu.service.IFeishuService; +import com.jero.modules.feishu.vo.FeishuMsgVo; +import com.jero.modules.system.entity.SysAnnouncement; +import com.jero.modules.system.service.ISysAnnouncementService; +import com.jero.modules.system.service.ISysUserService; import me.zhyd.oauth.utils.StringUtils; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; import org.apache.shiro.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Date; +import java.util.stream.Collectors; + import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; + /** * @Description: 认证虚拟清单基础表 * @Author: jero-boot @@ -32,6 +61,32 @@ import org.springframework.transaction.annotation.Transactional; @Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class) public class AuthDummyInventoryBaseEOServiceImpl extends ServiceImpl implements IAuthDummyInventoryBaseEOService { + @Autowired + private IAuthDummyReadEOService authDummyReadEOService; + + @Autowired + private AuthDummyInventoryBaseEOMapper authDummyInventoryBaseEOMapper; + + @Autowired + private IAuthDummyContentChangeEOService iAuthDummyContentChangeEOService; + + @Autowired + private IAuthDummyInventoryInfoEOService iAuthDummyInventoryInfoEOService; + + @Autowired + private ISysUserService sysUserService; + + @Autowired + private BussDocumentLibraryEOServiceImpl bussDocumentLibraryEOService; + + @Autowired + private ISysAnnouncementService sysAnnouncementService; + + @Value(value = "${jero.backUrl}") + private String backUrl; + + @Resource + private IFeishuService iFeishuService; /** * 保存 * @@ -149,4 +204,239 @@ public class AuthDummyInventoryBaseEOServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.in(AuthDummyReadEO::getAuthDummyInventoryBaseId, dummyId).in(AuthDummyReadEO::getCreateBy, sysUser.getUsername()); + authDummyReadEOService.remove(wrapper); + } + + /** + * 发布 + * @param authDummyInventoryBaseEO + * @throws Exception + */ + @Override + @Transactional + public void issue(AuthDummyInventoryBaseEO authDummyInventoryBaseEO) throws Exception { + // 增加创建者校验 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String loginUserName = sysUser.getUsername(); + + AuthDummyInventoryBaseEO baseEO = queryById(authDummyInventoryBaseEO.getId()); + List createByNameList =new ArrayList<>(); + Date now = new Date(); + UpdateWrapper baseWrapper=new UpdateWrapper<>(); + baseWrapper.set("state",authDummyInventoryBaseEO.getState()); + + if(InventoryStateEnum.ISSUE.getValue().equals(authDummyInventoryBaseEO.getState())){ + baseWrapper.set("update_by",sysUser.getUsername()) + .set("update_time",now); + } + baseWrapper.eq("id",authDummyInventoryBaseEO.getId()); + authDummyInventoryBaseEOMapper.update(null,baseWrapper); + + if(InventoryStateEnum.ISSUE.getValue().equals(authDummyInventoryBaseEO.getState())){ + //先判断第一次发布的时候是否保存过数据 + LambdaQueryWrapper wrapper =new LambdaQueryWrapper<>(); + wrapper.in(AuthDummyContentChangeEO::getConnectId,authDummyInventoryBaseEO.getId()); + List authDummyContentChangeEOList = iAuthDummyContentChangeEOService.list(wrapper); + //详情数据 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(AuthDummyInventoryInfoEO::getAuthDummyInventoryBaseId,authDummyInventoryBaseEO.getId()); + List authDummyInventoryInfoEOList = iAuthDummyInventoryInfoEOService.list(lambdaQueryWrapper); + String contentLog = "The "+ baseEO.getName()+" virtual authentication list you subscribed to has been updated as follows:" + "
"; + String contentLogFeishu = "The "+ baseEO.getName()+" virtual authentication list you subscribed to has been updated as follows:" + " "; + String contentLogFeishuTemp = "The "+ baseEO.getName()+" virtual authentication list you subscribed to has been updated as follows:" + " "; + + if(authDummyContentChangeEOList.size() == 0){ + //没有添加过需要进行第一次添加 + Date thisTime = new Date(); + List list = new ArrayList<>(); + if(authDummyInventoryInfoEOList.size() != 0){ + String info = JSONArray.toJSONString(authDummyInventoryInfoEOList); + AuthDummyContentChangeEO authDummyContentChangeEOInfo = new AuthDummyContentChangeEO(); + authDummyContentChangeEOInfo.setParentId(authDummyInventoryBaseEO.getId()); + authDummyContentChangeEOInfo.setConnectId(authDummyInventoryBaseEO.getId()); + authDummyContentChangeEOInfo.setContentJson(info); + authDummyContentChangeEOInfo.setUpdateTime(thisTime); + list.add(authDummyContentChangeEOInfo); + } + if(list.size() != 0){ + iAuthDummyContentChangeEOService.saveBatch(list); + } + }else{ + //2. 查询之前保存过的详情数据 + LambdaQueryWrapper wrapperInfo =new LambdaQueryWrapper<>(); + wrapperInfo.in(AuthDummyContentChangeEO::getParentId,authDummyInventoryBaseEO.getId()); + List dummyContentChangeEOInfoList = iAuthDummyContentChangeEOService.list(wrapperInfo); + if(dummyContentChangeEOInfoList.size() != 0){ + String contentJson = dummyContentChangeEOInfoList.get(0).getContentJson(); + List baseCJList = JSONArray.parseArray(contentJson, AuthDummyInventoryInfoEO.class); + List serialNumberOldList = baseCJList.stream().map(AuthDummyInventoryInfoEO::getSerialNumber).collect(Collectors.toList()); + //变更后的数据 + if(authDummyInventoryInfoEOList.size() != 0){ + List serialNumberNewList = authDummyInventoryInfoEOList.stream().map(AuthDummyInventoryInfoEO::getSerialNumber).collect(Collectors.toList()); + //新增的法规 + List collectAdd = authDummyInventoryInfoEOList.stream() + .filter(e -> !serialNumberOldList.contains(e.getSerialNumber())).collect(Collectors.toList()); + + List serialNumberAddList = serialNumberNewList.stream().filter(e->!serialNumberOldList.contains(e)).collect(Collectors.toList()); + //删除的法规 + List collectDelete = baseCJList.stream() + .filter(e -> !serialNumberNewList.contains(e.getSerialNumber())).collect(Collectors.toList()); + List serialNumberDeleteList = serialNumberOldList.stream().filter(e->!serialNumberNewList.contains(e)).collect(Collectors.toList()); + + //发消息 + int count = 1; + List hrefListAdd = new ArrayList<>(); + if(serialNumberAddList.size() != 0){ + + for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : collectAdd) { + String href = "" + authDummyInventoryInfoEO.getSerialNumber() + ""; + hrefListAdd.add(href); + } + contentLog += count+". New regulations: " + org.apache.commons.lang3.StringUtils.join(hrefListAdd,",") + "
"; + contentLogFeishu += count+". New regulations: " + org.apache.commons.lang3.StringUtils.join(serialNumberAddList,",") + " "; + count++; + } + List hrefListDelete = new ArrayList<>(); + if(serialNumberDeleteList.size() != 0){ + for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : collectDelete) { + String href = "" + authDummyInventoryInfoEO.getSerialNumber() + ""; + hrefListDelete.add(href); + } + contentLog += count + ". Remove regulations: " + org.apache.commons.lang3.StringUtils.join(hrefListDelete,",") + "
"; + contentLogFeishu += count + ". Remove regulations: " + org.apache.commons.lang3.StringUtils.join(serialNumberDeleteList,",") + " "; + } + + if(serialNumberAddList.size() != 0 || serialNumberDeleteList.size() != 0){ + int countNo = 1; + StringBuilder sbContentNo = new StringBuilder(); + if(ObjectUtils.isNotEmpty(serialNumberAddList)){ + sbContentNo.append(countNo+". New regulations: "+ org.apache.commons.lang3.StringUtils.join(serialNumberAddList,",")+", "); + countNo ++; + } + if(ObjectUtils.isNotEmpty(serialNumberDeleteList)){ + sbContentNo.append(countNo+". Remove regulations: "+ org.apache.commons.lang3.StringUtils.join(serialNumberDeleteList,",")); + } + + int countYes = 1; + StringBuilder sbContentYes = new StringBuilder(); + if(ObjectUtils.isNotEmpty(serialNumberAddList)){ + sbContentYes.append(countYes+". New regulations: "+ org.apache.commons.lang3.StringUtils.join(hrefListAdd,",")+"
"); + countYes ++; + } + if(ObjectUtils.isNotEmpty(serialNumberDeleteList)){ + sbContentYes.append(countYes+". Remove regulations: "+ org.apache.commons.lang3.StringUtils.join(hrefListDelete,",")); + } + String hrefTemp = "" + baseEO.getName() + ""; + + //消息英文--不带标签 + String contentNo = "The "+ baseEO.getName()+" virtual authentication list you subscribed to has been updated as follows:" + sbContentNo; + //消息英文--带标签 + String contentYes = "The "+ hrefTemp+" virtual authentication list you subscribed to has been updated as follows:"+ "
" + sbContentYes;; + + int countInfoNo = 1; + StringBuilder sbContentINfoNo = new StringBuilder(); + if(ObjectUtils.isNotEmpty(serialNumberAddList)){ + sbContentINfoNo.append(countInfoNo+". 新增文档: "+ org.apache.commons.lang3.StringUtils.join(serialNumberAddList,",")+", "); + countInfoNo ++; + } + if(ObjectUtils.isNotEmpty(serialNumberDeleteList)){ + sbContentINfoNo.append(countInfoNo+". 删除文档: "+ org.apache.commons.lang3.StringUtils.join(serialNumberDeleteList,",")); + } + + int countInfoYes = 1; + StringBuilder sbContentInfoYes = new StringBuilder(); + if(ObjectUtils.isNotEmpty(serialNumberAddList)){ + sbContentInfoYes.append(countInfoYes+". 新增文档: "+ org.apache.commons.lang3.StringUtils.join(hrefListAdd,",")+"
"); + countInfoYes ++; + } + if(ObjectUtils.isNotEmpty(serialNumberDeleteList)){ + sbContentInfoYes.append(countInfoYes+". 删除文档: "+ org.apache.commons.lang3.StringUtils.join(hrefListDelete,",")); + } + + //消息中文--不带标签 + String contentInfoNo = "您所订阅的"+baseEO.getName()+"虚拟认证清单已更新,更新内容如下:"+sbContentINfoNo; + //消息中文--带标签 + String contentInfoYes = "您所订阅的"+hrefTemp+"虚拟认证清单已更新,更新内容如下:"+"
"+sbContentInfoYes; + + List userNameList = authDummyReadEOService.queryReadUserInfo(authDummyInventoryBaseEO.getId()); + List thirdIdList = new ArrayList<>(); + if(userNameList.size() != 0){ + List userIdList = sysUserService.queryUserIdListByNameList(userNameList).stream().map(e -> e.getId()).collect(Collectors.toList()); + thirdIdList = sysUserService.queryUserIdListByNameList(userNameList).stream().map(e -> e.getThirdId()).collect(Collectors.toList()); + if(userIdList.size() != 0){ + //封装消息的实体类 + String title = "The "+ baseEO.getName()+" virtual list you subscribed to has been updated."; + SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, + title, + contentNo, + contentYes, + MessageTypeEnum.READ.getValue(), + MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName(), + contentInfoNo, + contentInfoYes); + sysAnnouncementService.saveAnnouncement(sysAnnouncement); + bussDocumentLibraryEOService.sendWebsocket(authDummyInventoryBaseEO.getId(), title); + } + } + //飞书 + if(thirdIdList.size() != 0){ + String href = backUrl + "/virtualAuthenticationListDetails?name=" + baseEO.getName() + "&useExplain=" + baseEO.getUseExplain() +"&id=" + baseEO.getId() +"&title=维护虚拟清单"; + try { + String contentInfoFeiCn = "您所订阅的"+baseEO.getName()+"虚拟认证清单已更新,更新内容如下:"; + FeishuMsgVo feishuMsgVo = new FeishuMsgVo(); + feishuMsgVo.setTitle(MessageTypeEnum.READ.getNameCn()+"/"+MessageTypeEnum.READ.getName()); + feishuMsgVo.setUrl(href); + feishuMsgVo.setContentEn(contentLogFeishuTemp); + feishuMsgVo.setContent(contentInfoFeiCn); + + iFeishuService.sendCardMsgVirtua(thirdIdList.toArray(new String[]{}),feishuMsgVo,serialNumberAddList,serialNumberDeleteList); +// iFeishuService.batchSendMessage(thirdIdList.toArray(new String[]{}), contentLogFeishu, MessageTypeEnum.PUSH.getName(), href); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } + //删除之前保存的变更的数据 + iAuthDummyContentChangeEOService.deleteById(dummyContentChangeEOInfoList.get(0).getId()); + + //重新保存 + AuthDummyContentChangeEO authDummyContentChangeEOInfo = new AuthDummyContentChangeEO(); + String contentJsonTemp = JSONArray.toJSONString(authDummyInventoryInfoEOList); + authDummyContentChangeEOInfo.setParentId(authDummyInventoryBaseEO.getId()); + authDummyContentChangeEOInfo.setConnectId(authDummyInventoryBaseEO.getId()); + authDummyContentChangeEOInfo.setContentJson(contentJsonTemp); + authDummyContentChangeEOInfo.setUpdateTime(new Date()); + iAuthDummyContentChangeEOService.save(authDummyContentChangeEOInfo); + } + } + } + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java index bd78fe5bb..02acbdbc0 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java @@ -1,27 +1,69 @@ package com.jero.modules.authDummy.service.impl; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; +import cn.hutool.core.util.ZipUtil; +import com.alibaba.fastjson.JSON; +import com.aliyuncs.utils.IOUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jero.common.api.vo.Result; import com.jero.common.constant.enums.CutEnum; import com.jero.common.exception.JeroBootException; +import com.jero.common.system.query.QueryGenerator; +import com.jero.common.system.vo.LoginUser; +import com.jero.common.util.oss.CosBootUtil; import com.jero.modules.authDummy.entity.AuthDummyInventoryBaseEO; import com.jero.modules.authDummy.entity.AuthDummyInventoryInfoEO; +import com.jero.modules.authDummy.entity.AuthDummyInventoryInfoEOEn; import com.jero.modules.authDummy.mapper.AuthDummyInventoryInfoEOMapper; import com.jero.modules.authDummy.service.IAuthDummyInventoryBaseEOService; import com.jero.modules.authDummy.service.IAuthDummyInventoryInfoEOService; +import com.jero.modules.document.entity.BussDocumentLibraryEO; +import com.jero.modules.document.service.IBussDocumentLibraryEOService; +import com.jero.modules.dummy.entity.DummyInventoryBaseEO; +import com.jero.modules.dummy.entity.DummyInventoryInfoEO; +import com.jero.modules.dummy.entity.DummyInventoryInfoEOEn; +import com.jero.modules.dummy.service.impl.DummyLogEOServiceImpl; +import com.jero.modules.oss.entity.OSSFile; +import com.jero.modules.oss.service.IOSSFileService; +import com.jero.modules.split.common.FileUnZip; +import com.jero.modules.system.entity.SysCategory; +import com.jero.modules.system.entity.SysDictItem; +import com.jero.modules.system.mapper.SysCategoryMapper; +import com.jero.modules.system.service.impl.SysCategoryServiceImpl; +import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFCell; +import org.apache.poi.hssf.usermodel.HSSFDateUtil; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.apache.shiro.SecurityUtils; +import org.aspectj.util.FileUtil; +import org.jeecgframework.poi.excel.ExcelExportUtil; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.enmus.ExcelType; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.io.*; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import static com.jero.modules.document.service.impl.BussDocumentLibraryEOServiceImpl.copyFile; /** * @Description: 认证虚拟清单详情表 @@ -35,6 +77,25 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl batchAdd(JSONObject json) { - try { - String serialNumber = json.getString("serialNumber"); - String wvtaId = json.getString("wvtaId"); - String dutyTerritory = json.getString("dutyTerritory"); - String bussDocumentLibraryId = json.getString("bussDocumentLibraryId"); - String authDummyInventoryBaseId = json.getString("authDummyInventoryBaseId"); - - List authDummyInventoryInfoEOList = new ArrayList<>(); - JSONArray dataList = json.getJSONArray("dataList"); - AuthDummyInventoryInfoEO authDummyInventoryInfoEO = null; - for (Object data : dataList) { - authDummyInventoryInfoEO = JSONObject.parseObject(JSONObject.toJSONString(data), AuthDummyInventoryInfoEO.class); - authDummyInventoryInfoEO.setSerialNumber(serialNumber); - authDummyInventoryInfoEO.setWvtaId(wvtaId); - authDummyInventoryInfoEO.setBussDocumentLibraryId(bussDocumentLibraryId); - authDummyInventoryInfoEO.setDutyTerritory(dutyTerritory); - authDummyInventoryInfoEO.setAuthDummyInventoryBaseId(authDummyInventoryBaseId); - authDummyInventoryInfoEOList.add(authDummyInventoryInfoEO); + public void exportData(HttpServletResponse response, HttpServletRequest request, AuthDummyInventoryInfoEO authDummyInventoryInfoEO) { + //检查虚拟清单是否存在 + QueryWrapper infoEOQueryWrapper = new QueryWrapper<>(); + List baseList = authDummyInventoryBaseEOService.list(infoEOQueryWrapper.eq("id", authDummyInventoryInfoEO.getAuthDummyInventoryBaseId())); + if(CollectionUtils.isNotEmpty(baseList)){ + List dataList = new ArrayList<>(); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(authDummyInventoryInfoEO,request.getParameterMap()); + queryWrapper.in("auth_dummy_inventory_base_id",authDummyInventoryInfoEO.getAuthDummyInventoryBaseId()); + if(StringUtils.isNotBlank(authDummyInventoryInfoEO.getIds())){ + queryWrapper.in("id",Arrays.asList(authDummyInventoryInfoEO.getIds().split(","))); } + queryWrapper.orderByDesc("create_time","serial_number"); + //导出的数据 + dataList = this.list(queryWrapper); - if(CollectionUtils.isNotEmpty(authDummyInventoryInfoEOList)){ - this.saveBatch(authDummyInventoryInfoEOList); + //数据转换(文件名称,技术领域,对应标准,发起人,责任人) +// dataTransition(dataList, fileInfos,dummyInventoryInfoEO); + + OutputStream os = null; + try { + response.setContentType("application/force-download"); + Workbook workbook = new XSSFWorkbook(); + String path = uploadpath + "/tempZip"; + File fileTemp = new File(path); + if (fileTemp.exists()) { + fileTemp.delete(); + } + fileTemp.mkdirs(); + //文件 + String excelName = ""; + if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){ + excelName = baseList.get(0).getName() + " 虚拟认证清单.xlsx"; + }else{ + excelName = baseList.get(0).getName() + " Virtual Authentication list.xlsx"; + } + //excel + OutputStream excelOS = new FileOutputStream(path + File.separator + excelName); + ExportParams exportParams = new ExportParams(); + //设置导出excel的格式 + exportParams.setType(ExcelType.XSSF); + if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){ + workbook = ExcelExportUtil.exportExcel(exportParams, AuthDummyInventoryInfoEO.class, dataList); + }else{ + List dataListEn = new ArrayList<>(); + for (AuthDummyInventoryInfoEO inventoryInfoEO : dataList) { + AuthDummyInventoryInfoEOEn authDummyInventoryInfoEOEn = new AuthDummyInventoryInfoEOEn(); + BeanUtils.copyProperties(inventoryInfoEO,authDummyInventoryInfoEOEn); + dataListEn.add(authDummyInventoryInfoEOEn); + } + //下拉选中英文转换 + transition(dataListEn); + workbook = ExcelExportUtil.exportExcel(exportParams, AuthDummyInventoryInfoEOEn.class, dataListEn); + } + workbook.write(excelOS); + excelOS.flush(); + + ZipUtil.zip(path, path + ".zip"); + //文件 + FileInputStream fis = new FileInputStream(path + ".zip"); + os = response.getOutputStream(); + + int len = 0; + while ((len = fis.read()) != -1) { + os.write(len); + } + os.flush(); + fis.close(); + } catch (IOException e) { + if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){ + throw new JeroBootException("下载文件失败"); + }else{ + throw new JeroBootException("Failed to download file"); + } + } finally { + IOUtils.closeQuietly(os); + File file = new File(uploadpath + "/tempZip"); + FileUtil.deleteContents(file); + } + }else{ + if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){ + throw new JeroBootException("该虚拟清单不存在,导出失败"); + }else{ + throw new JeroBootException("The virtual inventory does not exist, and the export failed."); } - }catch (Exception ex){ - throw new JeroBootException("添加失败!"); } - return Result.OK("添加成功!"); + } + + /** + * 数据导入 + * @param file + * @param authDummyInventoryInfoEO + */ + @Override + public void importData(MultipartFile file, AuthDummyInventoryInfoEO authDummyInventoryInfoEO) throws Exception{ + //检查虚拟清单是否存在 + QueryWrapper infoEOQueryWrapper = new QueryWrapper<>(); + List baseList = authDummyInventoryBaseEOService.list(infoEOQueryWrapper.eq("id", authDummyInventoryInfoEO.getAuthDummyInventoryBaseId())); + if(CollectionUtils.isNotEmpty(baseList)){ + String title = ""; + if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){ + title = "类别,检验项目,WVTA ID,编号,责任领域,交付物"; + }else{ + title = "Category,Inspection Items,WVTA ID,Number,Responsible Field,Deliverables"; + } + + int pos = file.getOriginalFilename().lastIndexOf("."); + String str = file.getOriginalFilename().substring(pos + 1).toLowerCase(); + String filenameorg = file.getOriginalFilename().substring(0, pos); + //判断上传文件必须是zip + if (!str.equals("zip")) { + if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){ + throw new JeroBootException("请上传zip格式的文件或rar格式的文件"); + }else{ + throw new JeroBootException("Please upload a zip file or rar file"); + } + + } + String path = uploadpath + File.separator + "modal" + File.separator + filenameorg + System.currentTimeMillis(); + File saveDirectory = new File(path); + if (!saveDirectory.isDirectory()) { + saveDirectory.mkdir(); + } + FileUtils.copyInputStreamToFile(file.getInputStream(), new File(path + File.separator + file.getOriginalFilename())); + //解压缩 + String zipEntryName = ""; + if (str.equals("zip")) { + zipEntryName = FileUnZip.unZipFiles(path + File.separator + file.getOriginalFilename(), path); + } + + + //判断压缩包下是否只有一个文件夹 + File fileTemp = new File(path); + int length = fileTemp.listFiles().length; + if (length > 2) { + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); + if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){ + throw new JeroBootException("压缩包中必须有且仅有一个文件夹,请重新上传"); + }else{ + throw new JeroBootException("There must be only one folder in the compressed package Please upload it again"); + } + + } + File fileNew = new File(zipEntryName); + List fileList = new ArrayList<>(); + for (File file1 : fileNew.listFiles()) { + if (file1.getName().contains(".xls") || file1.getName().contains(".xlsx")) { + fileList.add(file1); + } + } + if (fileList.size() == 0) { + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); + if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){ + throw new JeroBootException("压缩包根目录下没有excel作为导入数据,请重新上传"); + }else{ + throw new JeroBootException("Excel does not exist in the root directory of the compressed package Please upload it again"); + } + + } else if (fileList.size() > 1) { + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); + if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){ + throw new JeroBootException("压缩包根目录下仅能存在一个excel为导入数据,请重新上传"); + }else{ + throw new JeroBootException("Only one Excel file can be imported in the compressed package root directory. Please upload data again"); + } + + } + + // 数据相关处理, + // 1.获取其中的Excel, + List excelfilelist = FileUnZip.readImpExcelFile(zipEntryName); + System.gc(); + if (excelfilelist.size() < 1) { + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); + if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){ + throw new JeroBootException("压缩包内没有上传Excel数据"); + }else{ + throw new JeroBootException("No Excel data is uploaded in the compressed package"); + } + + } else if (excelfilelist.size() > 1) { + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); + if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){ + throw new JeroBootException("压缩包内有多个Excel数据源"); + }else{ + throw new JeroBootException("There are multiple Excel data sources in the zip package"); + } + + } + List datas = new ArrayList<>(); + File excelFile = excelfilelist.get(0); + Workbook workbook = WorkbookFactory.create(excelFile); + List> dataList = new ArrayList<>(); + if (workbook != null) { + DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + Sheet sheet = workbook.getSheetAt(0); + if (sheet != null) { + StringBuilder headerSb = new StringBuilder(); + int rowNos = sheet.getLastRowNum();// 得到excel的总记录条数 + for (int i = 0; i <= rowNos; i++) { + Row row = sheet.getRow(i); + Row headerRow = sheet.getRow(i); + boolean isBlank = isRowEmpty(row); + String key = ""; + if (row != null && !isBlank) { + int columNos = headerRow.getLastCellNum();// 表头总共的列数 + //预防空格子报错 + columNos = columNos > 24 ? 24 : columNos; + Map rowList = new LinkedHashMap<>(); + for (int j = 0; j < columNos; j++) { + Cell cell = row.getCell(j); + Cell headerCell = headerRow.getCell(j); + if (cell != null) { + if (i == 0) { + cell.setCellType(HSSFCell.CELL_TYPE_STRING); + headerSb.append(cell.getStringCellValue() + ","); + if(j == 8){ + break; + } + } else if(i >=1){ + // 校验头部是否符合模板 + String substring = headerSb.toString(); + if (substring.endsWith(",") || substring.endsWith(",")){ + substring = headerSb.substring(0, headerSb.length() - 1); + } + String excelHeader = substring.toString(); + if (!title.equals(excelHeader)) { + workbook.close(); + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); + if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){ + throw new JeroBootException("读取失败,请严格按照模板文件导入数据"); + }else{ + throw new JeroBootException("The data fails to be read. Import data strictly according to the template file"); + } + } + List headList = Arrays.asList(headerSb.toString().split(",")); + String field =""; + if (HSSFCell.CELL_TYPE_NUMERIC == cell.getCellType() && HSSFDateUtil.isCellDateFormatted(cell)) { + Date d = cell.getDateCellValue(); + field = fieldConvert(headList.get(j)); + rowList.put(field, df.format(d)); + } else { + field = fieldConvert(headList.get(j)); + cell.setCellType(HSSFCell.CELL_TYPE_STRING); + String stringCellValue = cell.getStringCellValue(); + if (StringUtils.isNotBlank(stringCellValue)) { + String replace = stringCellValue.replace(",", ","); + rowList.put(field, replace); + } else { + rowList.put(field, ""); + } + } + } + } + } + if (i >= 1) { + dataList.add(rowList); + } + } + } + + if (dataList.size() == 0) { + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); + if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){ + throw new JeroBootException("请填写必填字段内容,带*的为必填"); + }else{ + throw new JeroBootException("Please fill in the required fields marked with *"); + } + + }else{ + //数据转换 JSON.parseObject(JSON.toJSONString(map), MyUser.class) + for (Map stringStringMap : dataList) { + AuthDummyInventoryInfoEO authDummyInventoryInfoEOTemp = JSON.parseObject(JSON.toJSONString(stringStringMap), AuthDummyInventoryInfoEO.class); + authDummyInventoryInfoEOTemp.setCut(authDummyInventoryInfoEO.getCut()); + authDummyInventoryInfoEOTemp.setAuthDummyInventoryBaseId(authDummyInventoryInfoEO.getAuthDummyInventoryBaseId()); + datas.add(authDummyInventoryInfoEOTemp); + } + } + // 校验头部是否符合模板 +// String substring = headerSb.toString(); +// if (substring.endsWith(",") || substring.endsWith(",")){ +// substring = headerSb.substring(0, headerSb.length() - 1); +// } +// String excelHeader = substring.toString(); +// if (!title.equals(excelHeader)) { +// workbook.close(); +// //删除原上传文件 +// FileUnZip.deleteDir(saveDirectory); +// if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ +// throw new JeroBootException("读取失败,请严格按照模板文件导入数据"); +// }else{ +// throw new JeroBootException("The data fails to be read. Import data strictly according to the template file"); +// } +// +// } + } + } + workbook.close(); + + +// //树形数据字典 + List categoryList = sysCategoryService.list(); + //普通数据字典 + List dictItemList = sysDictItemServiceImpl.selectItemsAll(); + importDatas(datas, categoryList, dictItemList, zipEntryName,saveDirectory,authDummyInventoryInfoEO); + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); + }else{ + if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){ + throw new JeroBootException("该虚拟认证清单不存在,导入失败"); + }else{ + throw new JeroBootException("The virtual Authentication inventory does not exist, and the import failed."); + } + } + } + private void importDatas(List dataList, + List categoryList, + List dictItemList, + String zipEntryName, + File saveDirectory, + AuthDummyInventoryInfoEO authDummyInventoryInfoEOTemp) { + + String dictId = sysCategoryMapper.getDictId("deliverable_template"); + List collect = categoryList.stream().filter(e -> e.getSysDictId().equals(dictId)).collect(Collectors.toList()); + List treeNameList = new ArrayList<>(); + if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEOTemp.getCut())){ + treeNameList = collect.stream().map(SysCategory::getName).collect(Collectors.toList()); + }else{ + treeNameList = collect.stream().map(SysCategory::getEnName).collect(Collectors.toList()); + } + int i = 3; + List msgList = new ArrayList<>(); + String value = ""; + boolean flag = true; + //编号验证 + verifySerialNumber(dataList,authDummyInventoryInfoEOTemp); + for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : dataList) { + i++; + String errorMsg = ""; + if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEOTemp.getCut())){ + errorMsg = "第" + i + "行:"; + }else{ + errorMsg = i + " line:"; + } + //编号 + String serialNumber = authDummyInventoryInfoEO.getSerialNumber(); + //wvtaId + String wvtaId = authDummyInventoryInfoEO.getWvtaId(); + //类别 + String category = authDummyInventoryInfoEO.getCategory(); + //检验项目 + String inspectionItem = authDummyInventoryInfoEO.getInspectionItem(); + //配置项 + String configItem = authDummyInventoryInfoEO.getConfigItem(); + //责任领域 + String dutyTerritory = authDummyInventoryInfoEO.getDutyTerritory(); + //交付物 + String deliverable = authDummyInventoryInfoEO.getDeliverable(); + //文档库id + String bussDocumentLibraryId = authDummyInventoryInfoEO.getBussDocumentLibraryId(); + // 虚拟表基础表id + String authDummyInventoryBaseId = authDummyInventoryInfoEO.getAuthDummyInventoryBaseId(); + + //编号(输入框必填) + flag = must(authDummyInventoryInfoEO, errorMsg, msgList, serialNumber, "编号", "Number"); + + //WVTA ID + if(StringUtils.isNotBlank(wvtaId)){ + if(wvtaId.length() > 100){ + String message = ""; + if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEOTemp.getCut())){ + message = errorMsg + "WVTA ID不能超过100个字符, "; + }else{ + message = errorMsg + " The WVTA ID cannot contain more than 100 characters, "; + } + msgList.add(message); + } + } + + + + + + + + + //责任领域(多选必填) + flag = must(authDummyInventoryInfoEO, errorMsg, msgList, dutyTerritory,"责任领域","Responsible Field"); + if(flag){ + value = pullMore(dictItemList, authDummyInventoryInfoEO, errorMsg, dutyTerritory,msgList,"责任领域","Responsible Field","duty_territory"); + if(StringUtils.isNotBlank(value)){ + authDummyInventoryInfoEO.setDutyTerritory(value); + } + } + } + + if (msgList.size() > 0) { + //返回报错信息 + String html = ""; + for (String s : msgList) { + html += s + "
"; + } + FileUnZip.deleteDir(saveDirectory); + throw new JeroBootException(html); + } else { + StringBuilder serialNumberBuilder = new StringBuilder(); + if (dataList.size() != 0) { + this.saveBatch(dataList); + + //更新log + for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : dataList){ + serialNumberBuilder.append(authDummyInventoryInfoEO.getSerialNumber()).append(","); + } + String serialNumber = serialNumberBuilder.substring(0, serialNumberBuilder.length() - 1); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String username = sysUser.getUsername(); + String contentLog = username+"向清单中导入了“"+serialNumber+"”"; + String enContentLog = username+" imported “"+serialNumber+"” into the list."; + dummyLogEOService.updateLog(contentLog, dataList.get(0).getAuthDummyInventoryBaseId(),CutEnum.CN.getValue()); + dummyLogEOService.updateLog(enContentLog, dataList.get(0).getAuthDummyInventoryBaseId(),CutEnum.EN.getValue()); + } + } + } + private String pullMore(List dictItemList, AuthDummyInventoryInfoEO authDummyInventoryInfoEO, + String errorMsg, String value,List msgList, + String nameCn,String nameEn,String dictCode) { + List valueList = new ArrayList<>(); + if (StringUtils.isNotBlank(value)) { + List list = Arrays.asList(value.split(",")); + List collect = dictItemList.stream().filter(e -> dictCode.equals(e.getDictCode()) && list.contains(e.getItemText())).collect(Collectors.toList()); + if(list.size() == collect.size()){ + valueList = collect.stream().map(SysDictItem::getItemValue).collect(Collectors.toList()); + }else{ + //数据中有与数据字典不匹配的值 + List finalValueList = valueList; + List diffList = list.stream().filter(e -> !finalValueList.contains(e)).collect(Collectors.toList()); + if (CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())) { + errorMsg += nameCn + "中的" + StringUtils.join(diffList,",") + "与数据字典不匹配, "; + } else { + errorMsg += nameEn + " " + StringUtils.join(diffList,",") + " does not match the data dictionary, "; + } + msgList.add(errorMsg); + } + } + return StringUtils.join(valueList,","); + } + private boolean must(AuthDummyInventoryInfoEO authDummyInventoryInfoEO, String errorMsg, + List msgList, String serialNumber,String nameCn,String nameEn) { + int errorCount = 0; + if(StringUtils.isBlank(serialNumber)){ + errorCount ++; + if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){ + errorMsg += nameCn + "为必填项,不能为空, "; + }else{ + errorMsg += nameEn + " this parameter is mandatory and cannot be empty, "; + } + msgList.add(errorMsg); + } + if(errorCount == 0){ + return true; + }else{ + return false; + } + } + private void verifySerialNumber(List dataList,AuthDummyInventoryInfoEO authDummyInventoryInfoEOTemp) { + //文档库数据 + List serialNumberList = dataList.stream().map(AuthDummyInventoryInfoEO::getSerialNumber).collect(Collectors.toList()); + List serialNumberS = new ArrayList<>(); + if(serialNumberList.size() != 0){ + for (String s : serialNumberList) { + if(StringUtils.isNotBlank(s)){ + serialNumberS.add(s); + } + } + } + if(serialNumberS.size() != 0){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(BussDocumentLibraryEO::getSerialNumber,serialNumberS); + List bussDocumentLibraryEOList = iBussDocumentLibraryEOService.list(wrapper); + //文档库中可能存在重复的标准号 + List serialNumberListTemp = bussDocumentLibraryEOList.stream().map(BussDocumentLibraryEO::getSerialNumber).distinct().collect(Collectors.toList()); + + //虚拟清单数据 + LambdaQueryWrapper wrapperTemp = new LambdaQueryWrapper<>(); + wrapperTemp.in(AuthDummyInventoryInfoEO::getSerialNumber,serialNumberS).in(AuthDummyInventoryInfoEO::getAuthDummyInventoryBaseId,authDummyInventoryInfoEOTemp.getAuthDummyInventoryBaseId()); + List dummyInventoryInfoEOList = this.list(wrapperTemp); + List serialNumberTempList = dummyInventoryInfoEOList.stream().map(AuthDummyInventoryInfoEO::getSerialNumber).collect(Collectors.toList()); + if(serialNumberS.size() != serialNumberListTemp.size()){ + //存在文档库没有的数据 + List collect = bussDocumentLibraryEOList.stream().map(BussDocumentLibraryEO::getSerialNumber).collect(Collectors.toList()); + List serialNumbers = serialNumberS.stream().filter(e -> !collect.contains(e)).collect(Collectors.toList()); + if(serialNumbers.size() != 0){ + if(CutEnum.CN.getValue().equals(dataList.get(0).getCut())){ + throw new JeroBootException(StringUtils.join(serialNumbers,",")+"文档库中不存在,不能添加"); + }else{ + throw new JeroBootException(StringUtils.join(serialNumbers,",")+" does not exist in the document library and cannot be added"); + } + } + } + if(dummyInventoryInfoEOList.size() > 0){ + if(CutEnum.CN.getValue().equals(dataList.get(0).getCut())){ + throw new JeroBootException(StringUtils.join(serialNumberTempList,",")+"已存在,不能重复添加"); + }else{ + throw new JeroBootException(StringUtils.join(serialNumberTempList,",")+" already exists and cannot be added again"); + } + } + //通过编号将导入的数据与文档库进行关联 + for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : dataList) { + List collect = bussDocumentLibraryEOList.stream() + .filter(e -> e.getSerialNumber().equals(authDummyInventoryInfoEO.getSerialNumber())).collect(Collectors.toList()); + authDummyInventoryInfoEO.setBussDocumentLibraryId(collect.get(0).getId()); + authDummyInventoryInfoEO.setAuthDummyInventoryBaseId(collect.get(0).getId()); + + } + } + } + private String fieldConvert(String field){ + if (field == null) return null; + switch (field) { + case "类别": return "category"; + case "检验项目": return "inspectionItem"; + case "WVTA ID": return "wvtaId"; + case "编号" : return "serialNumber"; + case "责任领域": return "dutyTerritory"; + case "交付物" : return "deliverable"; + + case "Category" : return "Category"; + case "Inspection Items" : return"inspectionItem"; +// case "WVTA ID" : return "wvtaId"; + case "Number" : return "serialNumber"; + case "Responsible Field" : return "dutyTerritory"; + case "Deliverables" : return "deliverable"; + + + default: return null; + } + } + //判断row是否为空 空返回true + public boolean isRowEmpty(Row row) { + if (null == row) { + return true; + } + int firstCellNum = row.getFirstCellNum(); //第一个列位置 + int lastCellNum = row.getLastCellNum(); //最后一列位置 + int nullCellNum = 0; //空列数量 + for (int c = firstCellNum; c < lastCellNum; c++) { + Cell cell = row.getCell(c); + if (null == cell) { + nullCellNum++; + continue; + } + String value = ""; + switch (cell.getCellType()) { + case HSSFCell.CELL_TYPE_NUMERIC: // 数字 + //如果为时间格式的内容 + value = String.valueOf(cell.getNumericCellValue()); + break; + case HSSFCell.CELL_TYPE_STRING: // 字符串 + value = cell.getStringCellValue(); + break; + case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean + value = cell.getBooleanCellValue() + ""; + break; + case HSSFCell.CELL_TYPE_FORMULA: // 公式 + value = cell.getCellFormula() + ""; + break; + default: + break; + } + if (org.apache.commons.lang.StringUtils.isEmpty(value)) { + nullCellNum++; + } + } + //所有列都为空 + if (nullCellNum == (lastCellNum - firstCellNum)) { + return true; + } + return false; + } + + private void transition(List dataListEn) { + //技术领域数据字典 + List sysDictItems = sysDictItemServiceImpl.selectItemsAll(); + for (AuthDummyInventoryInfoEOEn authDummyInventoryInfoEOEn : dataListEn) { + + //责任领域dutyTerritory + String dutyTerritory = authDummyInventoryInfoEOEn.getDutyTerritory(); + String pullDutyTerritory = pull(sysDictItems, dutyTerritory,"duty_territory"); + if(StringUtils.isNotBlank(pullDutyTerritory)){ + authDummyInventoryInfoEOEn.setDutyTerritory(pullDutyTerritory); + } + } + } + private String pull(List sysDictItems, String field,String dictCode) { + if(StringUtils.isBlank(field)){ + return null; + } + StringBuilder sb = new StringBuilder(); + for (String s : field.split(",")) { + List collect = sysDictItems.stream().filter(e -> dictCode.equals(e.getDictCode()) && s.equals(e.getItemValue())).collect(Collectors.toList()); + if(collect.size() != 0){ + sb.append(collect.get(0).getEnName() + ","); + } + } + if(StringUtils.isNotBlank(sb)){ + String substring = sb.substring(0, sb.length() - 1); + return substring; + } + return null; } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyReadEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyReadEOServiceImpl.java new file mode 100644 index 000000000..ba9181f4a --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyReadEOServiceImpl.java @@ -0,0 +1,109 @@ +package com.jero.modules.authDummy.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jero.common.exception.JeroBootException; +import com.jero.modules.authDummy.entity.AuthDummyReadEO; +import com.jero.modules.authDummy.mapper.AuthDummyReadEOMapper; +import com.jero.modules.authDummy.service.IAuthDummyReadEOService; +import com.jero.modules.dummy.entity.DummyReadEO; +import me.zhyd.oauth.utils.StringUtils; +import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Date; +import java.util.stream.Collectors; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 虚拟认证清单订阅表 + * @Author: jero-boot + * @Date: 2023-03-10 + * @Version: V1.0 + */ +@Service +public class AuthDummyReadEOServiceImpl extends ServiceImpl implements IAuthDummyReadEOService { + + /** + * 保存 + * + * @param authDummyReadEO + * @return + */ + @Override + public void add(AuthDummyReadEO authDummyReadEO) { + Date now = new Date(); + authDummyReadEO.setCreateTime(now); + authDummyReadEO.setUpdateTime(now); + save(authDummyReadEO); + } + + /** + * 更新 + * + * @param authDummyReadEO + * @return + */ + @Override + public void editById(AuthDummyReadEO authDummyReadEO) { + Date now = new Date(); + authDummyReadEO.setUpdateTime(now); + saveOrUpdate(authDummyReadEO); + } + + /** + * 通过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 AuthDummyReadEO queryById(String id) { + return getById(id); + } + + /** + * 列表查询 + * + * @return + */ + @Override + public List queryList() { + return list(); + } + + @Override + public List queryReadUserInfo(String authDummyInventoryBaseId) { + + //获取订阅该虚拟清单的所有用户信息 + if(StringUtils.isNotEmpty(authDummyInventoryBaseId)){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("create_by").eq("auth_dummy_inventory_base_id",authDummyInventoryBaseId); + List readUserList = list(queryWrapper).stream().map(e -> e.getCreateBy()).distinct().collect(Collectors.toList()); + return readUserList; + }else{ + throw new JeroBootException("The virtual authentication inventory is not subscribed.");//该虚拟认证清单未被订阅 + } + } +}