You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

219 lines
7.5 KiB

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();
}
}