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.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 @Transactional(rollbackFor = Exception.class) public AjaxResult insert(@RequestBody AssetCurrent assetCurrent) { assetCurrent.setGlym(String.join(",",assetCurrent.getGlymList())); assetCurrent.setGlIp(String.join(",",assetCurrent.getGlIpList())); 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 = "修改数据") @PutMapping public AjaxResult update(@RequestBody @Valid AssetCurrent assetCurrent) { assetCurrent.setGlym(String.join(",",assetCurrent.getGlymList())); assetCurrent.setGlIp(String.join(",",assetCurrent.getGlIpList())); 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 删除结果 */ @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) { List list = assetCurrentService.page(as); List proList = new ArrayList<>(); for (AssetCurrent x : list) { //对应的资产 AssetExport assetExport = new AssetExport(); BeanUtil.copyProperties(x, assetExport); //查找对应的系统建设单位 AssetSupplyChain jsdw = assetSupplyChainService.getJsdw(x.getId()); BeanUtil.copyProperties(jsdw, assetExport); //查找对应的系统运营单位 AssetSupplyChain yydw = assetSupplyChainService.getYydw(x.getId()); assetExport.setGyszcdz1(yydw.getGyszcdz()); assetExport.setLxr1(yydw.getLxr()); assetExport.setLxdh1(yydw.getLxdh()); assetExport.setSfwtc1(yydw.getSfwtc()); assetExport.setName1(yydw.getName()); assetExport.setTyshxydm1(yydw.getTyshxydm()); List byList = assetBasicNetworkService.getByAssetId(x.getId()); for (AssetBasicNetwork items : byList) { if (items.getType() == 1) { //查找对应的服务器信息 BeanUtil.copyProperties(items, assetExport); } if (items.getType() == 2) { //查找对应网络设备 assetExport.setWlpp(items.getPp()); assetExport.setWlyjxh(items.getYjxh()); assetExport.setWlyjbsxx(items.getYjbsxx()); assetExport.setWlsblx(items.getSblx()); assetExport.setWlyjbbxx(items.getYjbbxx()); assetExport.setWlyjxlh(items.getYjxlh()); assetExport.setWlsbIp(items.getSbIp()); assetExport.setWlyjyt(items.getYjyt()); } if (items.getType() == 3) { //查找对应安全设备 assetExport.setAqwlpp(items.getPp()); assetExport.setAqwlsblx(items.getSblx()); assetExport.setAqwlsbIp(items.getSbIp()); } } proList.add(assetExport); } ExcelUtil util = new ExcelUtil<>(AssetExport.class); util.exportExcel(response, proList, "现有资产记录"); } /** * 导入现有资产 */ @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(); } }