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; 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.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; import com.yeejoin.amos.boot.module.jxiop.api.entity.HouseholdPvDevice;
/** /**
...@@ -9,6 +14,10 @@ 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 * @author system_generator
* @date 2023-03-17 * @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; 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 org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.RequestParam;
import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import org.springframework.web.multipart.MultipartFile;
import java.util.List; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import com.yeejoin.amos.boot.module.jxiop.biz.service.impl.HouseholdPvDeviceServiceImpl; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; 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.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 com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvDeviceDto;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvDeviceImport;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import com.yeejoin.amos.boot.module.jxiop.biz.service.impl.HouseholdPvDeviceServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/** /**
* 户用光伏设备表 * 户用光伏设备表
...@@ -53,7 +68,8 @@ public class HouseholdPvDeviceController extends BaseController { ...@@ -53,7 +68,8 @@ public class HouseholdPvDeviceController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}") @PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新户用光伏设备表", notes = "根据sequenceNbr更新户用光伏设备表") @ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新户用光伏设备表", notes = "根据sequenceNbr更新户用光伏设备表")
public ResponseModel<HouseholdPvDeviceDto> updateBySequenceNbrHouseholdPvDevice(@RequestBody HouseholdPvDeviceDto model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) { public ResponseModel<HouseholdPvDeviceDto> updateBySequenceNbrHouseholdPvDevice(
@RequestBody HouseholdPvDeviceDto model, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr); model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(householdPvDeviceServiceImpl.updateWithModel(model)); return ResponseHelper.buildResponse(householdPvDeviceServiceImpl.updateWithModel(model));
} }
...@@ -67,7 +83,8 @@ public class HouseholdPvDeviceController extends BaseController { ...@@ -67,7 +83,8 @@ public class HouseholdPvDeviceController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/{sequenceNbr}") @DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除户用光伏设备表", notes = "根据sequenceNbr删除户用光伏设备表") @ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除户用光伏设备表", notes = "根据sequenceNbr删除户用光伏设备表")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr){ public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request,
@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(householdPvDeviceServiceImpl.removeById(sequenceNbr)); return ResponseHelper.buildResponse(householdPvDeviceServiceImpl.removeById(sequenceNbr));
} }
...@@ -79,7 +96,7 @@ public class HouseholdPvDeviceController extends BaseController { ...@@ -79,7 +96,7 @@ public class HouseholdPvDeviceController extends BaseController {
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}") @GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET",value = "根据sequenceNbr查询单个户用光伏设备表", notes = "根据sequenceNbr查询单个户用光伏设备表") @ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个户用光伏设备表", notes = "根据sequenceNbr查询单个户用光伏设备表")
public ResponseModel<HouseholdPvDeviceDto> selectOne(@PathVariable Long sequenceNbr) { public ResponseModel<HouseholdPvDeviceDto> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(householdPvDeviceServiceImpl.queryBySeq(sequenceNbr)); return ResponseHelper.buildResponse(householdPvDeviceServiceImpl.queryBySeq(sequenceNbr));
} }
...@@ -93,9 +110,9 @@ public class HouseholdPvDeviceController extends BaseController { ...@@ -93,9 +110,9 @@ public class HouseholdPvDeviceController extends BaseController {
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page") @GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "户用光伏设备表分页查询", notes = "户用光伏设备表分页查询") @ApiOperation(httpMethod = "GET", value = "户用光伏设备表分页查询", notes = "户用光伏设备表分页查询")
public ResponseModel<Page<HouseholdPvDeviceDto>> queryForPage(@RequestParam(value = "current") int current,@RequestParam public ResponseModel<Page<HouseholdPvDeviceDto>> queryForPage(@RequestParam(value = "current") int current,
(value = "size") int size) { @RequestParam(value = "size") int size) {
Page<HouseholdPvDeviceDto> page = new Page<HouseholdPvDeviceDto>(); Page<HouseholdPvDeviceDto> page = new Page<HouseholdPvDeviceDto>();
page.setCurrent(current); page.setCurrent(current);
page.setSize(size); page.setSize(size);
...@@ -108,9 +125,31 @@ public class HouseholdPvDeviceController extends BaseController { ...@@ -108,9 +125,31 @@ public class HouseholdPvDeviceController extends BaseController {
* @return * @return
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "户用光伏设备表列表全部数据查询", notes = "户用光伏设备表列表全部数据查询") @ApiOperation(httpMethod = "GET", value = "户用光伏设备表列表全部数据查询", notes = "户用光伏设备表列表全部数据查询")
@GetMapping(value = "/list") @GetMapping(value = "/list")
public ResponseModel<List<HouseholdPvDeviceDto>> selectForList() { 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; 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.entity.HouseholdPvDevice;
import com.yeejoin.amos.boot.module.jxiop.api.mapper.HouseholdPvDeviceMapper; 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.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,7 +24,9 @@ import java.util.List; ...@@ -16,7 +24,9 @@ import java.util.List;
* @date 2023-03-17 * @date 2023-03-17
*/ */
@Service @Service
public class HouseholdPvDeviceServiceImpl extends BaseService<HouseholdPvDeviceDto,HouseholdPvDevice,HouseholdPvDeviceMapper> implements IHouseholdPvDeviceService { public class HouseholdPvDeviceServiceImpl
extends BaseService<HouseholdPvDeviceDto, HouseholdPvDevice, HouseholdPvDeviceMapper>
implements IHouseholdPvDeviceService {
/** /**
* 分页查询 * 分页查询
*/ */
...@@ -28,6 +38,23 @@ public class HouseholdPvDeviceServiceImpl extends BaseService<HouseholdPvDeviceD ...@@ -28,6 +38,23 @@ public class HouseholdPvDeviceServiceImpl extends BaseService<HouseholdPvDeviceD
* 列表查询 示例 * 列表查询 示例
*/ */
public List<HouseholdPvDeviceDto> queryForHouseholdPvDeviceList() { public List<HouseholdPvDeviceDto> queryForHouseholdPvDeviceList() {
return this.queryForList("" , false); 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; ...@@ -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.entity.HouseholdPvDistrict;
import com.yeejoin.amos.boot.module.jxiop.api.mapper.HouseholdPvDistrictMapper; import com.yeejoin.amos.boot.module.jxiop.api.mapper.HouseholdPvDistrictMapper;
import com.yeejoin.amos.boot.module.jxiop.api.service.IHouseholdPvDistrictService; 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 com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvDistrictDto;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -28,6 +29,8 @@ public class HouseholdPvDistrictServiceImpl extends BaseService<HouseholdPvDistr ...@@ -28,6 +29,8 @@ public class HouseholdPvDistrictServiceImpl extends BaseService<HouseholdPvDistr
* 列表查询 示例 * 列表查询 示例
*/ */
public List<HouseholdPvDistrictDto> queryForHouseholdPvDistrictList() { public List<HouseholdPvDistrictDto> queryForHouseholdPvDistrictList() {
Privilege.companyClient.queryOrgTree(null);
return this.queryForList("" , false); 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