package com.ruoyi.tc.controller; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.tc.entity.*; import com.ruoyi.tc.entity.request.AssetCurrentPageRequest; import com.ruoyi.tc.service.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** * 现有资产表(AssetCurrent)表控制层 * * @author makejava * @since 2024-11-15 10:03:56 */ @Api(tags = "现有资产表") @RestController @RequestMapping("/tc/assetCurrent") public class AssetCurrentController extends BaseController { /** * 服务对象 */ @Resource private AssetCurrentService assetCurrentService; @Resource private AssetSupplyChainService assetSupplyChainService; @Resource private AssetBasicNetworkService assetBasicNetworkService; @Resource private AssetBusinessFormService assetBusinessFormService; @Resource private UnitOtherConcatService unitOtherConcatService; /** * 分页查询所有数据 * * @param as 查询实体 * @return 所有数据 */ @ApiOperation(value = "分页查询所有数据", response = AssetCurrent.class) @GetMapping public AjaxResult selectAll(AssetCurrentPageRequest as) { Page page = new Page<>(); page.setSize(as.getSize()); page.setCurrent(as.getCurrent()); try { if (!SecurityUtils.getLoginUser().getUser().isAdmin() && !SecurityUtils.hasRole("common")) { as.setDwmc(SecurityUtils.getLoginUser().getUser().getNickName()); } } catch (Exception e) { throw new ServiceException("获取用户信息异常"); } return success(assetCurrentService.page(page, as)); } /** * 通过主键查询单条数据 * * @param id 主键 * @return 单条数据 */ @ApiOperation(value = "通过主键查询单条数据", response = AssetCurrent.class) @GetMapping("{id}") public AjaxResult selectOne(@PathVariable Serializable id) { return success(assetCurrentService.selectOne(id)); } /** * 新增数据 * * @param assetCurrent 实体对象 * @return 新增结果 */ @ApiOperation(value = "新增数据") @PostMapping @PreAuthorize("@ss.hasAnyRoles('admin,common')") @Transactional(rollbackFor = Exception.class) public AjaxResult insert(@RequestBody AssetCurrent assetCurrent) { StringBuilder a = new StringBuilder(); if(!assetCurrent.getGlymList().isEmpty()){ assetCurrent.getGlymList().forEach(x->{ a.append(x); a.append(","); }); } assetCurrent.setGlym(a.toString()); StringBuilder b = new StringBuilder(); if(!assetCurrent.getGlIpList().isEmpty()){ assetCurrent.getGlymList().forEach(x->{ b.append(x); b.append(","); }); } assetCurrent.setGlIp(b.toString()); assetCurrentService.save(assetCurrent); //新增新监管业务形态 if (assetCurrent.getXjgywxt() != null) { assetCurrent.getXjgywxt().setAssetId(assetCurrent.getId()); assetBusinessFormService.save(assetCurrent.getXjgywxt()); } if (!assetCurrent.getGylxxList().isEmpty()) { for (AssetSupplyChain items : assetCurrent.getGylxxList()) { items.setAssetId(assetCurrent.getId()); } //新增供应链 assetSupplyChainService.saveBatch(assetCurrent.getGylxxList()); } if (!assetCurrent.getJcwlList().isEmpty()) { for (AssetBasicNetwork items : assetCurrent.getJcwlList()) { items.setAssetId(assetCurrent.getId()); } //新增基础网络 assetBasicNetworkService.saveBatch(assetCurrent.getJcwlList()); } if (!assetCurrent.getOtherConcat().isEmpty()) { for (UnitOtherConcat items : assetCurrent.getOtherConcat()) { items.setAssetId(assetCurrent.getId()); } //新增其他联系人 unitOtherConcatService.saveBatch(assetCurrent.getOtherConcat()); } return success(); } /** * 修改数据 * * @param assetCurrent 实体对象 * @return 修改结果 */ @ApiOperation(value = "修改数据") @PreAuthorize("@ss.hasAnyRoles('admin,common')") @PutMapping public AjaxResult update(@RequestBody AssetCurrent assetCurrent) { StringBuilder a = new StringBuilder(); if(!assetCurrent.getGlymList().isEmpty()){ assetCurrent.getGlymList().forEach(x->{ a.append(x); a.append(","); }); } assetCurrent.setGlym(a.toString()); StringBuilder b = new StringBuilder(); if(!assetCurrent.getGlIpList().isEmpty()){ assetCurrent.getGlymList().forEach(x->{ b.append(x); b.append(","); }); } assetCurrent.setGlIp(b.toString()); assetCurrentService.updateById(assetCurrent); if (assetCurrent.getXjgywxt() != null) { assetCurrent.getXjgywxt().setAssetId(assetCurrent.getId()); assetBusinessFormService.saveOrUpdate(assetCurrent.getXjgywxt()); } if (!assetCurrent.getGylxxList().isEmpty()) { for (AssetSupplyChain items : assetCurrent.getGylxxList()) { items.setAssetId(assetCurrent.getId()); } //新增供应链 assetSupplyChainService.saveOrUpdateBatch(assetCurrent.getGylxxList()); } if (!assetCurrent.getJcwlList().isEmpty()) { for (AssetBasicNetwork items : assetCurrent.getJcwlList()) { items.setAssetId(assetCurrent.getId()); } //新增基础网络 assetBasicNetworkService.saveOrUpdateBatch(assetCurrent.getJcwlList()); } if (!assetCurrent.getOtherConcat().isEmpty()) { for (UnitOtherConcat items : assetCurrent.getOtherConcat()) { items.setAssetId(assetCurrent.getId()); } //新增其他联系人 unitOtherConcatService.saveOrUpdateBatch(assetCurrent.getOtherConcat()); } return success(); } /** * 删除数据 * * @param id 主键 * @return 删除结果 */ @PreAuthorize("@ss.hasAnyRoles('admin,common')") @ApiOperation(value = "删除数据") @DeleteMapping("/{id}") public AjaxResult delete(@PathVariable Long id) { assetSupplyChainService.deleteByAssetIds(id); assetBasicNetworkService.deleteByAssetIds(id); assetBusinessFormService.deleteByAssetIds(id); unitOtherConcatService.deleteByAssetIds(id); assetCurrentService.deleteByUnitIds(id); return success(); } /** * 下载资产导入模板 */ @ApiOperation(value = "下载资产导入模板") @PostMapping("/importTemplate") public void importTemplate(HttpServletResponse response) { ExcelUtil util = new ExcelUtil<>(AssetExport.class); util.importTemplateExcel(response, "资产导入模板"); } /** * 导出现有资产 */ @ApiOperation(value = "导出现有资产") @PostMapping("/export") public void exportProject(HttpServletResponse response, AssetCurrentPageRequest as) { try { if (!SecurityUtils.getLoginUser().getUser().isAdmin() && !SecurityUtils.hasRole("common")) { as.setDwmc(SecurityUtils.getLoginUser().getUser().getNickName()); } } catch (Exception e) { throw new ServiceException("获取用户信息异常"); } List list = assetCurrentService.page(as); ExcelUtil util = new ExcelUtil<>(AssetExport.class); util.exportExcel(response, list, "现有资产记录"); } /** * 导入现有资产 */ @PreAuthorize("@ss.hasAnyRoles('admin,common')") @ApiOperation(value = "导入现有资产") @PostMapping(value = "/import", consumes = "multipart/form-data") public AjaxResult export(@RequestPart("file") MultipartFile file) throws Exception { //读取所有的字段 ExcelUtil util = new ExcelUtil<>(AssetExport.class); List proList = util.importExcel(file.getInputStream()); for (AssetExport items : proList) { AssetCurrent as = new AssetCurrent(); //copy新增到新的现有资产表里面 BeanUtil.copyProperties(items, as); assetCurrentService.save(as); //新增系统建设单位 AssetSupplyChain s1 = new AssetSupplyChain(); BeanUtil.copyProperties(items, s1); s1.setType(5); s1.setAssetId(as.getId()); assetSupplyChainService.save(s1); //新增系统运营单位 AssetSupplyChain b6 = new AssetSupplyChain(); b6.setGyszcdz(items.getGyszcdz1()); b6.setLxr(items.getLxr1()); b6.setLxdh(items.getLxdh1()); b6.setSfwtc(items.getSfwtc1()); b6.setName(items.getName1()); b6.setTyshxydm(items.getTyshxydm1()); b6.setType(7); b6.setAssetId(as.getId()); assetSupplyChainService.save(b6); //新增服务器信息 AssetBasicNetwork a1 = new AssetBasicNetwork(); BeanUtil.copyProperties(items, a1); a1.setType(1); a1.setAssetId(as.getId()); assetBasicNetworkService.save(a1); //新增网络设备 AssetBasicNetwork a2 = new AssetBasicNetwork(); a2.setSblx(items.getWlsblx()); a2.setPp(items.getWlpp()); a2.setSbIp(items.getWlsbIp()); a2.setYjxh(items.getWlyjxh()); a2.setYjxlh(items.getWlyjxlh()); a2.setYjbbxx(items.getWlyjbbxx()); a2.setYjyt(items.getWlyjyt()); a2.setYjbsxx(items.getWlyjbsxx()); a2.setType(2); a2.setAssetId(as.getId()); assetBasicNetworkService.save(a2); //新增安全设备 AssetBasicNetwork a3 = new AssetBasicNetwork(); a3.setSblx(items.getAqwlsblx()); a3.setPp(items.getAqwlpp()); a3.setSbIp(items.getAqwlsbIp()); a3.setType(3); a3.setAssetId(as.getId()); assetBasicNetworkService.save(a3); } return AjaxResult.success(); } }