虚拟认证清单(订阅-导入导出不完整)
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
+170
@@ -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<AuthDummyContentChangeEO, IAuthDummyContentChangeEOService> {
|
||||
@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<AuthDummyContentChangeEO> queryWrapper = QueryGenerator.initQueryWrapper(authDummyContentChangeEO, req.getParameterMap());
|
||||
Page<AuthDummyContentChangeEO> page = new Page<AuthDummyContentChangeEO>(pageNo, pageSize);
|
||||
IPage<AuthDummyContentChangeEO> pageList = authDummyContentChangeEOService.page(page, queryWrapper);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "虚拟认证清单系统维护表-列表查询")
|
||||
@ApiOperation(value="虚拟认证清单系统维护表-列表查询", notes="虚拟认证清单系统维护表-列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
public Result<List<AuthDummyContentChangeEO>> queryList() {
|
||||
List<AuthDummyContentChangeEO> 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);
|
||||
}
|
||||
|
||||
}
|
||||
+65
@@ -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<AuthDummy
|
||||
public Result<?> 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!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+41
-7
@@ -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<AuthDummy
|
||||
return super.exportXls(request, authDummyInventoryInfoEO, AuthDummyInventoryInfoEO.class, "认证虚拟清单详情表");
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出数据
|
||||
* @param response
|
||||
* @param request
|
||||
* @param authDummyInventoryInfoEO
|
||||
*/
|
||||
@ApiOperation(value="认证虚拟清单详情表-导出数据",notes="认证虚拟清单详情表-导出数据",produces = "application/octet-stream")
|
||||
@PostMapping(value = "/exportData")
|
||||
// @RequiresPermissions("authDummyInventoryInfoEO:exportData")
|
||||
public void exportData(HttpServletResponse response,
|
||||
HttpServletRequest request,
|
||||
AuthDummyInventoryInfoEO authDummyInventoryInfoEO) {
|
||||
authDummyInventoryInfoEOService.exportData(response,request, authDummyInventoryInfoEO);
|
||||
}
|
||||
/**
|
||||
* 导入数据
|
||||
* @param file
|
||||
* @param authDummyInventoryInfoEO
|
||||
*/
|
||||
@ApiOperation(value="认证虚拟清单详情表-导入数据",notes="认证虚拟清单详情表-导入数据",produces = "application/octet-stream")
|
||||
@PostMapping(value = "/importData")
|
||||
// @RequiresPermissions("authDummyInventoryInfoEO:exportData")
|
||||
public Result<?> 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<AuthDummy
|
||||
public Result<?> 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);
|
||||
// }
|
||||
}
|
||||
|
||||
+170
@@ -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<AuthDummyReadEO, IAuthDummyReadEOService> {
|
||||
@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<AuthDummyReadEO> queryWrapper = QueryGenerator.initQueryWrapper(authDummyReadEO, req.getParameterMap());
|
||||
Page<AuthDummyReadEO> page = new Page<AuthDummyReadEO>(pageNo, pageSize);
|
||||
IPage<AuthDummyReadEO> pageList = authDummyReadEOService.page(page, queryWrapper);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "虚拟认证清单订阅表-列表查询")
|
||||
@ApiOperation(value="虚拟认证清单订阅表-列表查询", notes="虚拟认证清单订阅表-列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
public Result<List<AuthDummyReadEO>> queryList() {
|
||||
List<AuthDummyReadEO> 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);
|
||||
}
|
||||
|
||||
}
|
||||
+79
@@ -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;
|
||||
|
||||
}
|
||||
+3
@@ -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;
|
||||
}
|
||||
|
||||
+5
-5
@@ -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;
|
||||
|
||||
|
||||
+113
@@ -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;
|
||||
}
|
||||
+69
@@ -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;
|
||||
|
||||
}
|
||||
+14
@@ -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<AuthDummyContentChangeEO> {
|
||||
|
||||
}
|
||||
+14
@@ -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<AuthDummyReadEO> {
|
||||
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jero.modules.authDummy.mapper.AuthDummyContentChangeEOMapper">
|
||||
<resultMap id="AuthDummyContentChangeEOResultMap" type="com.jero.modules.authDummy.entity.AuthDummyContentChangeEO">
|
||||
<id column="id" property="id" />
|
||||
<result column="create_by" property="createBy" />
|
||||
<result column="create_time" property="createTime" />
|
||||
<result column="update_by" property="updateBy" />
|
||||
<result column="update_time" property="updateTime" />
|
||||
<result column="sys_org_code" property="sysOrgCode" />
|
||||
<result column="connect_id" property="connectId" />
|
||||
<result column="parent_id" property="parentId" />
|
||||
<result column="content_json" property="contentJson" />
|
||||
</resultMap>
|
||||
</mapper>
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jero.modules.authDummy.mapper.AuthDummyReadEOMapper">
|
||||
<resultMap id="AuthDummyReadEOResultMap" type="com.jero.modules.authDummy.entity.AuthDummyReadEO">
|
||||
<id column="id" property="id" />
|
||||
<result column="create_by" property="createBy" />
|
||||
<result column="create_time" property="createTime" />
|
||||
<result column="update_by" property="updateBy" />
|
||||
<result column="update_time" property="updateTime" />
|
||||
<result column="sys_org_code" property="sysOrgCode" />
|
||||
<result column="auth_dummy_inventory_base_id" property="authDummyInventoryBaseId" />
|
||||
</resultMap>
|
||||
</mapper>
|
||||
+61
@@ -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<AuthDummyContentChangeEO> {
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
* @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<String> ids);
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
AuthDummyContentChangeEO queryById(String id);
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<AuthDummyContentChangeEO> queryList();
|
||||
}
|
||||
+18
@@ -74,4 +74,22 @@ public interface IAuthDummyInventoryBaseEOService extends IService<AuthDummyInve
|
||||
* @param cut
|
||||
*/
|
||||
void disposeData(List<AuthDummyInventoryBaseEO> datas, String cut);
|
||||
|
||||
/**
|
||||
* 订阅
|
||||
* @param dummyId
|
||||
*/
|
||||
void read(String dummyId);
|
||||
|
||||
/**
|
||||
* 取消订阅
|
||||
* @param dummyId
|
||||
*/
|
||||
void cancelRead(String dummyId);
|
||||
|
||||
/**
|
||||
* 发布
|
||||
* @param authDummyInventoryBaseEO
|
||||
*/
|
||||
void issue(AuthDummyInventoryBaseEO authDummyInventoryBaseEO)throws Exception;
|
||||
}
|
||||
|
||||
+16
-5
@@ -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<AuthDummyInve
|
||||
Result<?> 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;
|
||||
}
|
||||
|
||||
+64
@@ -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<AuthDummyReadEO> {
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
* @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<String> ids);
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
AuthDummyReadEO queryById(String id);
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<AuthDummyReadEO> queryList();
|
||||
|
||||
/**查询订阅虚拟清单的用户*/
|
||||
List<String> queryReadUserInfo(String authDummyInventoryBaseId);
|
||||
}
|
||||
+89
@@ -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<AuthDummyContentChangeEOMapper, AuthDummyContentChangeEO> 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<String> ids) {
|
||||
removeByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public AuthDummyContentChangeEO queryById(String id) {
|
||||
return getById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<AuthDummyContentChangeEO> queryList() {
|
||||
return list();
|
||||
}
|
||||
}
|
||||
+290
@@ -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<AuthDummyInventoryBaseEOMapper, AuthDummyInventoryBaseEO> 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<AuthDummyIn
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 订阅
|
||||
* @param dummyId
|
||||
*/
|
||||
@Override
|
||||
public void read(String dummyId) {
|
||||
AuthDummyReadEO authDummyReadEO = new AuthDummyReadEO();
|
||||
authDummyReadEO.setAuthDummyInventoryBaseId(dummyId);
|
||||
authDummyReadEOService.add(authDummyReadEO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消订阅
|
||||
* @param dummyId
|
||||
*/
|
||||
@Override
|
||||
public void cancelRead(String dummyId) {
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
LambdaQueryWrapper<AuthDummyReadEO> 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<String> createByNameList =new ArrayList<>();
|
||||
Date now = new Date();
|
||||
UpdateWrapper<AuthDummyInventoryBaseEO> 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<AuthDummyContentChangeEO> wrapper =new LambdaQueryWrapper<>();
|
||||
wrapper.in(AuthDummyContentChangeEO::getConnectId,authDummyInventoryBaseEO.getId());
|
||||
List<AuthDummyContentChangeEO> authDummyContentChangeEOList = iAuthDummyContentChangeEOService.list(wrapper);
|
||||
//详情数据
|
||||
LambdaQueryWrapper<AuthDummyInventoryInfoEO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.in(AuthDummyInventoryInfoEO::getAuthDummyInventoryBaseId,authDummyInventoryBaseEO.getId());
|
||||
List<AuthDummyInventoryInfoEO> authDummyInventoryInfoEOList = iAuthDummyInventoryInfoEOService.list(lambdaQueryWrapper);
|
||||
String contentLog = "The "+ baseEO.getName()+" virtual authentication list you subscribed to has been updated as follows:" + "</br>";
|
||||
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<AuthDummyContentChangeEO> 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<AuthDummyContentChangeEO> wrapperInfo =new LambdaQueryWrapper<>();
|
||||
wrapperInfo.in(AuthDummyContentChangeEO::getParentId,authDummyInventoryBaseEO.getId());
|
||||
List<AuthDummyContentChangeEO> dummyContentChangeEOInfoList = iAuthDummyContentChangeEOService.list(wrapperInfo);
|
||||
if(dummyContentChangeEOInfoList.size() != 0){
|
||||
String contentJson = dummyContentChangeEOInfoList.get(0).getContentJson();
|
||||
List<AuthDummyInventoryInfoEO> baseCJList = JSONArray.parseArray(contentJson, AuthDummyInventoryInfoEO.class);
|
||||
List<String> serialNumberOldList = baseCJList.stream().map(AuthDummyInventoryInfoEO::getSerialNumber).collect(Collectors.toList());
|
||||
//变更后的数据
|
||||
if(authDummyInventoryInfoEOList.size() != 0){
|
||||
List<String> serialNumberNewList = authDummyInventoryInfoEOList.stream().map(AuthDummyInventoryInfoEO::getSerialNumber).collect(Collectors.toList());
|
||||
//新增的法规
|
||||
List<AuthDummyInventoryInfoEO> collectAdd = authDummyInventoryInfoEOList.stream()
|
||||
.filter(e -> !serialNumberOldList.contains(e.getSerialNumber())).collect(Collectors.toList());
|
||||
|
||||
List<String> serialNumberAddList = serialNumberNewList.stream().filter(e->!serialNumberOldList.contains(e)).collect(Collectors.toList());
|
||||
//删除的法规
|
||||
List<AuthDummyInventoryInfoEO> collectDelete = baseCJList.stream()
|
||||
.filter(e -> !serialNumberNewList.contains(e.getSerialNumber())).collect(Collectors.toList());
|
||||
List<String> serialNumberDeleteList = serialNumberOldList.stream().filter(e->!serialNumberNewList.contains(e)).collect(Collectors.toList());
|
||||
|
||||
//发消息
|
||||
int count = 1;
|
||||
List<String> hrefListAdd = new ArrayList<>();
|
||||
if(serialNumberAddList.size() != 0){
|
||||
|
||||
for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : collectAdd) {
|
||||
String href = "<a href='/docManage/library/detail?id=" + authDummyInventoryInfoEO.getBussDocumentLibraryId() +
|
||||
// "&title=" + authDummyInventoryInfoEO.getTitle() +
|
||||
"&serial_number=" + authDummyInventoryInfoEO.getSerialNumber() + "'" + " target='_blank'>" + authDummyInventoryInfoEO.getSerialNumber() + "</a>";
|
||||
hrefListAdd.add(href);
|
||||
}
|
||||
contentLog += count+". New regulations: " + org.apache.commons.lang3.StringUtils.join(hrefListAdd,",") + "</br>";
|
||||
contentLogFeishu += count+". New regulations: " + org.apache.commons.lang3.StringUtils.join(serialNumberAddList,",") + " ";
|
||||
count++;
|
||||
}
|
||||
List<String> hrefListDelete = new ArrayList<>();
|
||||
if(serialNumberDeleteList.size() != 0){
|
||||
for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : collectDelete) {
|
||||
String href = "<a href='/docManage/library/detail?id=" + authDummyInventoryInfoEO.getBussDocumentLibraryId() +
|
||||
// "&title=" + authDummyInventoryInfoEO.getTitle() +
|
||||
"&serial_number=" + authDummyInventoryInfoEO.getSerialNumber() + "'" + " target='_blank'>" + authDummyInventoryInfoEO.getSerialNumber() + "</a>";
|
||||
hrefListDelete.add(href);
|
||||
}
|
||||
contentLog += count + ". Remove regulations: " + org.apache.commons.lang3.StringUtils.join(hrefListDelete,",") + "</br>";
|
||||
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,",")+"</br>");
|
||||
countYes ++;
|
||||
}
|
||||
if(ObjectUtils.isNotEmpty(serialNumberDeleteList)){
|
||||
sbContentYes.append(countYes+". Remove regulations: "+ org.apache.commons.lang3.StringUtils.join(hrefListDelete,","));
|
||||
}
|
||||
String hrefTemp = "<a href='/virtualAuthenticationListDetails?id=" + authDummyInventoryBaseEO.getId() +
|
||||
"&useExplain="+baseEO.getUseExplain()+
|
||||
"&name=" + baseEO.getName() + "'" + " target='_blank'>" + baseEO.getName() + "</a>";
|
||||
|
||||
//消息英文--不带标签
|
||||
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:"+ "</br>" + 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,",")+"</br>");
|
||||
countInfoYes ++;
|
||||
}
|
||||
if(ObjectUtils.isNotEmpty(serialNumberDeleteList)){
|
||||
sbContentInfoYes.append(countInfoYes+". 删除文档: "+ org.apache.commons.lang3.StringUtils.join(hrefListDelete,","));
|
||||
}
|
||||
|
||||
//消息中文--不带标签
|
||||
String contentInfoNo = "您所订阅的"+baseEO.getName()+"虚拟认证清单已更新,更新内容如下:"+sbContentINfoNo;
|
||||
//消息中文--带标签
|
||||
String contentInfoYes = "您所订阅的"+hrefTemp+"虚拟认证清单已更新,更新内容如下:"+"</br>"+sbContentInfoYes;
|
||||
|
||||
List<String> userNameList = authDummyReadEOService.queryReadUserInfo(authDummyInventoryBaseEO.getId());
|
||||
List<String> thirdIdList = new ArrayList<>();
|
||||
if(userNameList.size() != 0){
|
||||
List<String> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+680
-26
@@ -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<AuthDummyIn
|
||||
|
||||
@Autowired
|
||||
private IAuthDummyInventoryBaseEOService authDummyInventoryBaseEOService;
|
||||
@Autowired
|
||||
private IOSSFileService iOSSFileService;
|
||||
|
||||
@Value(value = "${jero.path.upload}")
|
||||
private String uploadpath;
|
||||
|
||||
@Autowired
|
||||
private SysDictItemServiceImpl sysDictItemServiceImpl;
|
||||
|
||||
@Autowired
|
||||
private SysCategoryServiceImpl sysCategoryService;
|
||||
|
||||
@Autowired
|
||||
SysCategoryMapper sysCategoryMapper;
|
||||
|
||||
@Autowired
|
||||
private DummyLogEOServiceImpl dummyLogEOService;
|
||||
@Autowired
|
||||
private IBussDocumentLibraryEOService iBussDocumentLibraryEOService;
|
||||
|
||||
/**
|
||||
* 保存
|
||||
@@ -192,34 +253,627 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
|
||||
return Result.OK("批量设置成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出数据
|
||||
* @param response
|
||||
* @param request
|
||||
* @param authDummyInventoryInfoEO
|
||||
*/
|
||||
@Override
|
||||
public Result<?> 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<AuthDummyInventoryInfoEO> 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<AuthDummyInventoryBaseEO> infoEOQueryWrapper = new QueryWrapper<>();
|
||||
List<AuthDummyInventoryBaseEO> baseList = authDummyInventoryBaseEOService.list(infoEOQueryWrapper.eq("id", authDummyInventoryInfoEO.getAuthDummyInventoryBaseId()));
|
||||
if(CollectionUtils.isNotEmpty(baseList)){
|
||||
List<AuthDummyInventoryInfoEO> dataList = new ArrayList<>();
|
||||
QueryWrapper<AuthDummyInventoryInfoEO> 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<AuthDummyInventoryInfoEOEn> 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<AuthDummyInventoryBaseEO> infoEOQueryWrapper = new QueryWrapper<>();
|
||||
List<AuthDummyInventoryBaseEO> 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<File> 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<File> 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<AuthDummyInventoryInfoEO> datas = new ArrayList<>();
|
||||
File excelFile = excelfilelist.get(0);
|
||||
Workbook workbook = WorkbookFactory.create(excelFile);
|
||||
List<Map<String, String>> 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<String, String> 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<String> 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<String, String> 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<SysCategory> categoryList = sysCategoryService.list();
|
||||
//普通数据字典
|
||||
List<SysDictItem> 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<AuthDummyInventoryInfoEO> dataList,
|
||||
List<SysCategory> categoryList,
|
||||
List<SysDictItem> dictItemList,
|
||||
String zipEntryName,
|
||||
File saveDirectory,
|
||||
AuthDummyInventoryInfoEO authDummyInventoryInfoEOTemp) {
|
||||
|
||||
String dictId = sysCategoryMapper.getDictId("deliverable_template");
|
||||
List<SysCategory> collect = categoryList.stream().filter(e -> e.getSysDictId().equals(dictId)).collect(Collectors.toList());
|
||||
List<String> 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<String> 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 + "</br>";
|
||||
}
|
||||
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<SysDictItem> dictItemList, AuthDummyInventoryInfoEO authDummyInventoryInfoEO,
|
||||
String errorMsg, String value,List<String> msgList,
|
||||
String nameCn,String nameEn,String dictCode) {
|
||||
List<String> valueList = new ArrayList<>();
|
||||
if (StringUtils.isNotBlank(value)) {
|
||||
List<String> list = Arrays.asList(value.split(","));
|
||||
List<SysDictItem> 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<String> finalValueList = valueList;
|
||||
List<String> 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<String> 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<AuthDummyInventoryInfoEO> dataList,AuthDummyInventoryInfoEO authDummyInventoryInfoEOTemp) {
|
||||
//文档库数据
|
||||
List<String> serialNumberList = dataList.stream().map(AuthDummyInventoryInfoEO::getSerialNumber).collect(Collectors.toList());
|
||||
List<String> serialNumberS = new ArrayList<>();
|
||||
if(serialNumberList.size() != 0){
|
||||
for (String s : serialNumberList) {
|
||||
if(StringUtils.isNotBlank(s)){
|
||||
serialNumberS.add(s);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(serialNumberS.size() != 0){
|
||||
LambdaQueryWrapper<BussDocumentLibraryEO> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.in(BussDocumentLibraryEO::getSerialNumber,serialNumberS);
|
||||
List<BussDocumentLibraryEO> bussDocumentLibraryEOList = iBussDocumentLibraryEOService.list(wrapper);
|
||||
//文档库中可能存在重复的标准号
|
||||
List<String> serialNumberListTemp = bussDocumentLibraryEOList.stream().map(BussDocumentLibraryEO::getSerialNumber).distinct().collect(Collectors.toList());
|
||||
|
||||
//虚拟清单数据
|
||||
LambdaQueryWrapper<AuthDummyInventoryInfoEO> wrapperTemp = new LambdaQueryWrapper<>();
|
||||
wrapperTemp.in(AuthDummyInventoryInfoEO::getSerialNumber,serialNumberS).in(AuthDummyInventoryInfoEO::getAuthDummyInventoryBaseId,authDummyInventoryInfoEOTemp.getAuthDummyInventoryBaseId());
|
||||
List<AuthDummyInventoryInfoEO> dummyInventoryInfoEOList = this.list(wrapperTemp);
|
||||
List<String> serialNumberTempList = dummyInventoryInfoEOList.stream().map(AuthDummyInventoryInfoEO::getSerialNumber).collect(Collectors.toList());
|
||||
if(serialNumberS.size() != serialNumberListTemp.size()){
|
||||
//存在文档库没有的数据
|
||||
List<String> collect = bussDocumentLibraryEOList.stream().map(BussDocumentLibraryEO::getSerialNumber).collect(Collectors.toList());
|
||||
List<String> 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<BussDocumentLibraryEO> 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<AuthDummyInventoryInfoEOEn> dataListEn) {
|
||||
//技术领域数据字典
|
||||
List<SysDictItem> 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<SysDictItem> sysDictItems, String field,String dictCode) {
|
||||
if(StringUtils.isBlank(field)){
|
||||
return null;
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (String s : field.split(",")) {
|
||||
List<SysDictItem> 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;
|
||||
}
|
||||
}
|
||||
|
||||
+109
@@ -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<AuthDummyReadEOMapper, AuthDummyReadEO> 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<String> ids) {
|
||||
removeByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public AuthDummyReadEO queryById(String id) {
|
||||
return getById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<AuthDummyReadEO> queryList() {
|
||||
return list();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> queryReadUserInfo(String authDummyInventoryBaseId) {
|
||||
|
||||
//获取订阅该虚拟清单的所有用户信息
|
||||
if(StringUtils.isNotEmpty(authDummyInventoryBaseId)){
|
||||
QueryWrapper<AuthDummyReadEO> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.select("create_by").eq("auth_dummy_inventory_base_id",authDummyInventoryBaseId);
|
||||
List<String> 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.");//该虚拟认证清单未被订阅
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user