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.AssetBasicNetwork; import com.ruoyi.tc.entity.AssetCurrent; import com.ruoyi.tc.entity.AssetExport; import com.ruoyi.tc.entity.AssetSupplyChain; import com.ruoyi.tc.entity.AssetTask; import com.ruoyi.tc.entity.UnitOtherConcat; import com.ruoyi.tc.entity.po.AssetBasicNetworkCpPo; import com.ruoyi.tc.entity.po.AssetCurrentCpPo; import com.ruoyi.tc.entity.po.AssetSupplyChainCpPo; import com.ruoyi.tc.entity.po.UnitOtherConcatCpPo; import com.ruoyi.tc.entity.request.AssetCurrentPageRequest; import com.ruoyi.tc.service.AssetBasicNetworkCpService; import com.ruoyi.tc.service.AssetBasicNetworkService; import com.ruoyi.tc.service.AssetBusinessFormCpService; import com.ruoyi.tc.service.AssetBusinessFormService; import com.ruoyi.tc.service.AssetCurrentCpService; import com.ruoyi.tc.service.AssetCurrentService; import com.ruoyi.tc.service.AssetSupplyChainCpService; import com.ruoyi.tc.service.AssetSupplyChainService; import com.ruoyi.tc.service.AssetTaskService; import com.ruoyi.tc.service.UnitOtherConcatCpService; import com.ruoyi.tc.service.UnitOtherConcatService; 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.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; 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.List; /** * 现有资产表(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; @Resource private AssetTaskService assetTaskService; @Resource private AssetCurrentCpService assetCurrentCpService; @Resource private AssetBusinessFormCpService assetBusinessFormCpService; @Resource private AssetSupplyChainCpService assetSupplyChainCpService; @Resource private AssetBasicNetworkCpService assetBasicNetworkCpService; @Resource private UnitOtherConcatCpService unitOtherConcatCpService; /** * 分页查询所有数据 * * @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 @Valid AssetCurrent assetCurrent) { StringBuilder a = new StringBuilder(); if (assetCurrent.getGlymList() != null) { assetCurrent.getGlymList().forEach(x -> { a.append(x.getKey()); a.append(","); }); } assetCurrent.setGlym(a.toString()); StringBuilder b = new StringBuilder(); if (assetCurrent.getGlIpList() != null) { assetCurrent.getGlymList().forEach(x -> { b.append(x.getKey()); 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() != null) { for (AssetSupplyChain items : assetCurrent.getGylxxList()) { items.setAssetId(assetCurrent.getId()); } //新增供应链 assetSupplyChainService.saveBatch(assetCurrent.getGylxxList()); } if (assetCurrent.getJcwlList() != null) { for (AssetBasicNetwork items : assetCurrent.getJcwlList()) { items.setAssetId(assetCurrent.getId()); } //新增基础网络 assetBasicNetworkService.saveBatch(assetCurrent.getJcwlList()); } if (assetCurrent.getOtherConcat() != null) { for (UnitOtherConcat items : assetCurrent.getOtherConcat()) { items.setAssetId(assetCurrent.getId()); } //新增其他联系人 unitOtherConcatService.saveBatch(assetCurrent.getOtherConcat()); } // 单位有进行中的任务时,管理端新增该单位下的资产则需同步至当前进行中的任务中。 //获取新增资产id Long id = assetCurrent.getId(); List assetTasks = assetTaskService.taskList(assetCurrent.getDwmc()); if (assetTasks != null) { for (AssetTask assetTask : assetTasks) { //新增资产复制主表 AssetCurrentCpPo assetCurrentCpPo = new AssetCurrentCpPo(); BeanUtil.copyProperties(assetCurrent, assetCurrentCpPo); assetCurrentCpPo.setTaskId(assetTask.getId()); assetCurrentCpService.save(assetCurrentCpPo); //新增新监管业务形态 //根据资产id查询新监管业务形态主表id if (assetCurrent.getXjgywxt() != null) { assetCurrentCpPo.getXjgywxt().setAssetId(id); assetCurrentCpPo.getXjgywxt().setTaskId(assetTask.getId()); assetBusinessFormCpService.save(assetCurrentCpPo.getXjgywxt()); } if (assetCurrent.getGylxxList() != null) { for (AssetSupplyChainCpPo items : assetCurrentCpPo.getGylxxList()) { items.setAssetId(id); items.setTaskId(assetTask.getId()); } //新增供应链 assetSupplyChainCpService.saveBatch(assetCurrentCpPo.getGylxxList()); } if (assetCurrent.getJcwlList() != null) { for (AssetBasicNetworkCpPo items : assetCurrentCpPo.getJcwlList()) { items.setAssetId(assetCurrent.getId()); items.setTaskId(assetTask.getId()); } //新增基础网络 assetBasicNetworkCpService.saveBatch(assetCurrentCpPo.getJcwlList()); } if (assetCurrent.getOtherConcat() != null) { for (UnitOtherConcatCpPo items : assetCurrentCpPo.getOtherConcat()) { items.setAssetId(assetCurrent.getId()); items.setTaskId(assetTask.getId()); } //新增其他联系人 unitOtherConcatCpService.saveBatch(assetCurrentCpPo.getOtherConcat()); } } } return success(); } /** * 修改数据 * * @param assetCurrent 实体对象 * @return 修改结果 */ @ApiOperation(value = "修改数据") @PreAuthorize("@ss.hasAnyRoles('admin,common')") @PutMapping public AjaxResult update(@RequestBody @Valid AssetCurrent assetCurrent) { StringBuilder a = new StringBuilder(); if (assetCurrent.getGlymList() != null) { assetCurrent.getGlymList().forEach(x -> { a.append(x.getKey()); a.append(","); }); } assetCurrent.setGlym(a.toString()); StringBuilder b = new StringBuilder(); if (assetCurrent.getGlIpList() != null) { assetCurrent.getGlymList().forEach(x -> { b.append(x.getKey()); b.append(","); }); } assetCurrent.setGlIp(b.toString()); assetCurrentService.updateById(assetCurrent); assetSupplyChainService.deleteByAssetIds(assetCurrent.getId()); assetBasicNetworkService.deleteByAssetIds(assetCurrent.getId()); assetBusinessFormService.deleteByAssetIds(assetCurrent.getId()); unitOtherConcatService.deleteByAssetIds(assetCurrent.getId()); if (assetCurrent.getXjgywxt() != null) { assetCurrent.getXjgywxt().setAssetId(assetCurrent.getId()); assetCurrent.getXjgywxt().setId(null); assetBusinessFormService.save(assetCurrent.getXjgywxt()); } if (assetCurrent.getGylxxList() != null) { for (AssetSupplyChain items : assetCurrent.getGylxxList()) { items.setAssetId(assetCurrent.getId()); items.setId(null); } //新增供应链 assetSupplyChainService.saveBatch(assetCurrent.getGylxxList()); } if (assetCurrent.getJcwlList() != null) { for (AssetBasicNetwork items : assetCurrent.getJcwlList()) { items.setAssetId(assetCurrent.getId()); items.setId(null); } //新增基础网络 assetBasicNetworkService.saveBatch(assetCurrent.getJcwlList()); } if (assetCurrent.getOtherConcat() != null) { for (UnitOtherConcat items : assetCurrent.getOtherConcat()) { items.setAssetId(assetCurrent.getId()); items.setConcatId(null); } //新增其他联系人 unitOtherConcatService.saveBatch(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.page1(as); ExcelUtil util = new ExcelUtil<>(AssetExport.class); util.exportExcel(response, list, "现有资产记录"); } /** * 导入现有资产 */ @Transactional(rollbackFor = Exception.class) @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); AssetCurrent one = assetCurrentService.lambdaQuery().eq(AssetCurrent::getXtmc, as.getXtmc()) .eq(AssetCurrent::getDwmc, as.getDwmc()).one(); if (one != null) { as.setId(one.getId()); assetCurrentService.updateById(as); List a1 = new ArrayList<>(); a1.add(one.getId()); assetSupplyChainService.deleteIdList(a1); assetBasicNetworkService.deleteIdList(a1); } else { 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); //============= Long id = as.getId(); List assetTasks = assetTaskService.taskList(as.getDwmc()); if (assetTasks != null) { for (AssetTask assetTask : assetTasks) { //新增资产复制主表 AssetCurrentCpPo assetCurrentCpPo = new AssetCurrentCpPo(); BeanUtil.copyProperties(as, assetCurrentCpPo); assetCurrentCpPo.setTaskId(assetTask.getId()); AssetCurrentCpPo two = assetCurrentCpService.lambdaQuery().eq(AssetCurrentCpPo::getXtmc, as.getXtmc()) .eq(AssetCurrentCpPo::getDwmc, as.getDwmc()).one(); if (two != null) { assetCurrentCpPo.setId(two.getId()); assetCurrentCpService.updateById(assetCurrentCpPo); assetSupplyChainCpService.deletByAssetIdandTaskId(id,assetTask.getId()); assetBasicNetworkCpService.deletByAssetIdandTaskId(id,assetTask.getId()); } else { assetCurrentCpService.save(assetCurrentCpPo); } //新增系统建设单位 AssetSupplyChainCpPo co1 = new AssetSupplyChainCpPo(); BeanUtil.copyProperties(items, co1); co1.setType(5); co1.setAssetId(id); co1.setTaskId(assetTask.getId()); assetSupplyChainCpService.save(co1); //新增系统运营单位 AssetSupplyChainCpPo co2 = new AssetSupplyChainCpPo(); co2.setGyszcdz(items.getGyszcdz1()); co2.setLxr(items.getLxr1()); co2.setLxdh(items.getLxdh1()); co2.setSfwtc(items.getSfwtc1()); co2.setName(items.getName1()); co2.setTyshxydm(items.getTyshxydm1()); co2.setType(7); co2.setAssetId(as.getId()); co2.setTaskId(assetTask.getId()); assetSupplyChainCpService.save(co2); //新增服务器信息 AssetBasicNetworkCpPo co3 = new AssetBasicNetworkCpPo(); BeanUtil.copyProperties(items, co3); co3.setType(1); co3.setAssetId(id); co3.setTaskId(assetTask.getId()); assetBasicNetworkCpService.save(co3); //新增网络设备 AssetBasicNetworkCpPo co4 = new AssetBasicNetworkCpPo(); co4.setSblx(items.getWlsblx()); co4.setPp(items.getWlpp()); co4.setSbIp(items.getWlsbIp()); co4.setYjxh(items.getWlyjxh()); co4.setYjxlh(items.getWlyjxlh()); co4.setYjbbxx(items.getWlyjbbxx()); co4.setYjyt(items.getWlyjyt()); co4.setYjbsxx(items.getWlyjbsxx()); co4.setType(2); co4.setAssetId(id); co4.setTaskId(assetTask.getId()); assetBasicNetworkCpService.save(co4); //新增安全设备 AssetBasicNetworkCpPo co5 = new AssetBasicNetworkCpPo(); co5.setSblx(items.getAqwlsblx()); co5.setPp(items.getAqwlpp()); co5.setSbIp(items.getAqwlsbIp()); co5.setType(3); co5.setAssetId(id); co5.setTaskId(assetTask.getId()); assetBasicNetworkCpService.save(co5); } } } return AjaxResult.success(); } }