Commit f7abb235 authored by wujiang's avatar wujiang

添加设备导入

parent 432e521b
package com.yeejoin.amos.boot.module.jxiop.api.Util;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import javax.servlet.http.HttpServletResponse;
import org.springframework.core.io.ClassPathResource;
public class FileUtil {
public static void downloadResource(String fileName, String resourceName, HttpServletResponse response) {
DataInputStream in = null;
OutputStream out = null;
InputStream fileInputStream = null;
try {
response.reset();
response.setCharacterEncoding("UTF-8");
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
ClassPathResource classPathResource = new ClassPathResource(resourceName);
fileInputStream = classPathResource.getInputStream();
in = new DataInputStream(fileInputStream);
out = response.getOutputStream();
int bytes = 0;
byte[] bufferOut = new byte[1024];
while ((bytes = in.read(bufferOut)) != -1) {
out.write(bufferOut, 0, bytes);
}
} catch (Exception e) {
e.printStackTrace();
response.reset();
} finally {
try {
if (out != null) {
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
if (in != null) {
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
if (fileInputStream != null) {
fileInputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package com.yeejoin.amos.boot.module.jxiop.api.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
@Data
public class HouseholdPvDeviceImport {
@ColumnWidth(15)
@ExcelProperty(value = "设备类型", index = 0)
private String type;
@ColumnWidth(15)
@ExcelProperty(value = "设备名称", index = 1)
private String name;
@ColumnWidth(15)
@ExcelProperty(value = "品牌", index = 2)
private String brand;
@ColumnWidth(15)
@ExcelProperty(value = "SN编码", index = 3)
private String snCode;
@ColumnWidth(15)
@ExcelProperty(value = "型号", index = 4)
private String model;
@ColumnWidth(15)
@ExcelProperty(value = "功率", index = 5)
private String power;
@ColumnWidth(15)
@ExcelProperty(value = "序列号", index = 6)
private String serialNumber;
@ColumnWidth(15)
@ExcelProperty(value = "描述", index = 7)
private String description;
}
package com.yeejoin.amos.boot.module.jxiop.api.service;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvDeviceImport;
import com.yeejoin.amos.boot.module.jxiop.api.entity.HouseholdPvDevice;
/**
......@@ -9,6 +14,10 @@ import com.yeejoin.amos.boot.module.jxiop.api.entity.HouseholdPvDevice;
* @author system_generator
* @date 2023-03-17
*/
public interface IHouseholdPvDeviceService extends IService<HouseholdPvDevice>{
public interface IHouseholdPvDeviceService extends IService<HouseholdPvDevice> {
void exportTemplates(HttpServletResponse response);
void importData(List<HouseholdPvDeviceImport> list, long householdPvId);
}
package com.yeejoin.amos.boot.module.jxiop.biz.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
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 io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.List;
import com.yeejoin.amos.boot.module.jxiop.biz.service.impl.HouseholdPvDeviceServiceImpl;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.excel.ExcelUtil;
import com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvDeviceDto;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvDeviceImport;
import com.yeejoin.amos.boot.module.jxiop.biz.service.impl.HouseholdPvDeviceServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 户用光伏设备表
......@@ -28,89 +43,113 @@ import org.typroject.tyboot.core.foundation.enumeration.UserType;
@RequestMapping(value = "/household-pv-device")
public class HouseholdPvDeviceController extends BaseController {
@Autowired
HouseholdPvDeviceServiceImpl householdPvDeviceServiceImpl;
@Autowired
HouseholdPvDeviceServiceImpl householdPvDeviceServiceImpl;
/**
* 新增户用光伏设备表
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
/**
* 新增户用光伏设备表
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增户用光伏设备表", notes = "新增户用光伏设备表")
public ResponseModel<HouseholdPvDeviceDto> save(@RequestBody HouseholdPvDeviceDto model) {
model = householdPvDeviceServiceImpl.createWithModel(model);
return ResponseHelper.buildResponse(model);
model = householdPvDeviceServiceImpl.createWithModel(model);
return ResponseHelper.buildResponse(model);
}
/**
* 根据sequenceNbr更新
*
* @param sequenceNbr 主键
* @return
*/
* 根据sequenceNbr更新
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新户用光伏设备表", notes = "根据sequenceNbr更新户用光伏设备表")
public ResponseModel<HouseholdPvDeviceDto> updateBySequenceNbrHouseholdPvDevice(@RequestBody HouseholdPvDeviceDto model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(householdPvDeviceServiceImpl.updateWithModel(model));
public ResponseModel<HouseholdPvDeviceDto> updateBySequenceNbrHouseholdPvDevice(
@RequestBody HouseholdPvDeviceDto model, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(householdPvDeviceServiceImpl.updateWithModel(model));
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除户用光伏设备表", notes = "根据sequenceNbr删除户用光伏设备表")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr){
return ResponseHelper.buildResponse(householdPvDeviceServiceImpl.removeById(sequenceNbr));
}
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除户用光伏设备表", notes = "根据sequenceNbr删除户用光伏设备表")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request,
@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(householdPvDeviceServiceImpl.removeById(sequenceNbr));
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
* @return
*/
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET",value = "根据sequenceNbr查询单个户用光伏设备表", notes = "根据sequenceNbr查询单个户用光伏设备表")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个户用光伏设备表", notes = "根据sequenceNbr查询单个户用光伏设备表")
public ResponseModel<HouseholdPvDeviceDto> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(householdPvDeviceServiceImpl.queryBySeq(sequenceNbr));
return ResponseHelper.buildResponse(householdPvDeviceServiceImpl.queryBySeq(sequenceNbr));
}
/**
* 列表分页查询
*
* @param current 当前页
* @param current 每页大小
* @return
*/
* 列表分页查询
*
* @param current 当前页
* @param current 每页大小
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "户用光伏设备表分页查询", notes = "户用光伏设备表分页查询")
public ResponseModel<Page<HouseholdPvDeviceDto>> queryForPage(@RequestParam(value = "current") int current,@RequestParam
(value = "size") int size) {
Page<HouseholdPvDeviceDto> page = new Page<HouseholdPvDeviceDto>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(householdPvDeviceServiceImpl.queryForHouseholdPvDevicePage(page));
@ApiOperation(httpMethod = "GET", value = "户用光伏设备表分页查询", notes = "户用光伏设备表分页查询")
public ResponseModel<Page<HouseholdPvDeviceDto>> queryForPage(@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) {
Page<HouseholdPvDeviceDto> page = new Page<HouseholdPvDeviceDto>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(householdPvDeviceServiceImpl.queryForHouseholdPvDevicePage(page));
}
/**
* 列表全部数据查询
*
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "户用光伏设备表列表全部数据查询", notes = "户用光伏设备表列表全部数据查询")
@ApiOperation(httpMethod = "GET", value = "户用光伏设备表列表全部数据查询", notes = "户用光伏设备表列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<HouseholdPvDeviceDto>> selectForList() {
return ResponseHelper.buildResponse(householdPvDeviceServiceImpl.queryForHouseholdPvDeviceList());
return ResponseHelper.buildResponse(householdPvDeviceServiceImpl.queryForHouseholdPvDeviceList());
}
@GetMapping(value = "/exportTemplates")
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "模板下载", notes = "模板下载")
public void exportTemplates(HttpServletResponse response) {
householdPvDeviceServiceImpl.exportTemplates(response);
}
@GetMapping(value = "/import")
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "导入", notes = "导入")
public ResponseModel<Object> importData(@RequestPart("file") MultipartFile multipartFile,
@RequestParam(value = "householdPvId", required = true) long householdPvId) {
List<HouseholdPvDeviceImport> list;
try {
list = ExcelUtil.readFirstSheetExcel(multipartFile, HouseholdPvDeviceImport.class, 2);
householdPvDeviceServiceImpl.importData(list, householdPvId);
} catch (Exception e) {
e.printStackTrace();
}
return ResponseHelper.buildResponse("success");
}
}
package com.yeejoin.amos.boot.module.jxiop.biz.service.impl;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jxiop.api.Util.FileUtil;
import com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvDeviceDto;
import com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvDeviceImport;
import com.yeejoin.amos.boot.module.jxiop.api.entity.HouseholdPvDevice;
import com.yeejoin.amos.boot.module.jxiop.api.mapper.HouseholdPvDeviceMapper;
import com.yeejoin.amos.boot.module.jxiop.api.service.IHouseholdPvDeviceService;
import com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvDeviceDto;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.List;
/**
* 户用光伏设备表服务实现类
......@@ -16,18 +24,37 @@ import java.util.List;
* @date 2023-03-17
*/
@Service
public class HouseholdPvDeviceServiceImpl extends BaseService<HouseholdPvDeviceDto,HouseholdPvDevice,HouseholdPvDeviceMapper> implements IHouseholdPvDeviceService {
/**
* 分页查询
*/
public Page<HouseholdPvDeviceDto> queryForHouseholdPvDevicePage(Page<HouseholdPvDeviceDto> page) {
return this.queryForPage(page, null, false);
}
/**
* 列表查询 示例
*/
public List<HouseholdPvDeviceDto> queryForHouseholdPvDeviceList() {
return this.queryForList("" , false);
}
public class HouseholdPvDeviceServiceImpl
extends BaseService<HouseholdPvDeviceDto, HouseholdPvDevice, HouseholdPvDeviceMapper>
implements IHouseholdPvDeviceService {
/**
* 分页查询
*/
public Page<HouseholdPvDeviceDto> queryForHouseholdPvDevicePage(Page<HouseholdPvDeviceDto> page) {
return this.queryForPage(page, null, false);
}
/**
* 列表查询 示例
*/
public List<HouseholdPvDeviceDto> queryForHouseholdPvDeviceList() {
return this.queryForList("", false);
}
@Override
public void exportTemplates(HttpServletResponse response) {
FileUtil.downloadResource("户用光伏-设备导入模板.xlsx", "templates/户用光伏-设备导入模板.xlsx", response);
}
@Override
public void importData(List<HouseholdPvDeviceImport> list, long householdPvId) {
List<HouseholdPvDevice> dataList = new ArrayList<>();
for (HouseholdPvDeviceImport householdPvDeviceImport : list) {
HouseholdPvDevice householdPvDevice = new HouseholdPvDevice();
BeanUtils.copyProperties(householdPvDeviceImport, householdPvDevice);
householdPvDevice.setHouseholdPvId(householdPvId);
dataList.add(householdPvDevice);
}
this.saveBatch(dataList);
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.jxiop.biz.service.impl;
import com.yeejoin.amos.boot.module.jxiop.api.entity.HouseholdPvDistrict;
import com.yeejoin.amos.boot.module.jxiop.api.mapper.HouseholdPvDistrictMapper;
import com.yeejoin.amos.boot.module.jxiop.api.service.IHouseholdPvDistrictService;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvDistrictDto;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service;
......@@ -28,6 +29,8 @@ public class HouseholdPvDistrictServiceImpl extends BaseService<HouseholdPvDistr
* 列表查询 示例
*/
public List<HouseholdPvDistrictDto> queryForHouseholdPvDistrictList() {
Privilege.companyClient.queryOrgTree(null);
return this.queryForList("" , false);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment