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.utils.poi.ExcelUtil; import com.ruoyi.tc.entity.*; import com.ruoyi.tc.entity.request.AssetCurrentPageRequest; import com.ruoyi.tc.service.AssetBasicNetworkService; import com.ruoyi.tc.service.AssetCurrentService; import com.ruoyi.tc.service.AssetSupplyChainService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; 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.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; /** * 分页查询所有数据 * * @param page 分页对象 * @param as 查询实体 * @return 所有数据 */ @ApiOperation(value = "分页查询所有数据", response = AssetCurrent.class) @GetMapping public AjaxResult selectAll(Page<AssetCurrent> page, AssetCurrentPageRequest as) { 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.getById(id)); } /** * 新增数据 * * @param assetCurrent 实体对象 * @return 新增结果 */ @ApiOperation(value = "新增数据") @PostMapping public AjaxResult insert(@RequestBody @Valid AssetCurrent assetCurrent) { return success(assetCurrentService.save(assetCurrent)); } /** * 修改数据 * * @param assetCurrent 实体对象 * @return 修改结果 */ @ApiOperation(value = "修改数据") @PutMapping public AjaxResult update(@RequestBody @Valid AssetCurrent assetCurrent) { return success(assetCurrentService.updateById(assetCurrent)); } /** * 删除数据 * * @param idList 主键结合 * @return 删除结果 */ @ApiOperation(value = "删除数据") @DeleteMapping public AjaxResult delete(@RequestParam("idList") List<Long> idList) { return success(assetCurrentService.removeByIds(idList)); } /** * 下载资产导入模板 */ @ApiOperation(value = "下载资产导入模板") @PostMapping("/importTemplate") public void importTemplate(HttpServletResponse response) { ExcelUtil<AssetExport> util = new ExcelUtil<>(AssetExport.class); util.importTemplateExcel(response, "资产导入模板"); } /** * 导出现有资产 */ @ApiOperation(value = "导出现有资产") @PostMapping("/export") public void exportProject(HttpServletResponse response, AssetCurrentPageRequest as) { List<AssetCurrent> list = assetCurrentService.page(as); List<AssetExport> 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); List<AssetBasicNetwork> 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<AssetExport> 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<AssetExport> util = new ExcelUtil<>(AssetExport.class); List<AssetExport> 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); //新增服务器信息 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(); } }