Commit eb72e0bc authored by lisong's avatar lisong

更新接口

parent 8bd45e87
...@@ -28,7 +28,7 @@ public class HouseholdPvDto extends BaseDto { ...@@ -28,7 +28,7 @@ public class HouseholdPvDto extends BaseDto {
private String number; private String number;
@ApiModelProperty(value = "厂商") @ApiModelProperty(value = "厂商")
private String platformCompanyId; private Long platformCompanyId;
@ApiModelProperty(value = "性别") @ApiModelProperty(value = "性别")
private String sex; private String sex;
......
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 HouseholdPvImport {
@ColumnWidth(15)
@ExcelProperty(value = "所属场站", index = 0)
private String platformCompanyId;
@ColumnWidth(15)
@ExcelProperty(value = "户号", index = 1)
private String number;
@ColumnWidth(15)
@ExcelProperty(value = "户主姓名", index = 2)
private String name;
@ColumnWidth(15)
@ExcelProperty(value = "性别", index = 3)
private String sex;
@ColumnWidth(15)
@ExcelProperty(value = "身份证号", index = 4)
private String idNumber;
@ColumnWidth(20)
@ExcelProperty(value = "证件过期时间", index = 5)
private String expiryTime;
@ColumnWidth(15)
@ExcelProperty(value = "签发机关", index = 6)
private String issuingAuthority;
@ColumnWidth(15)
@ExcelProperty(value = "户籍地址", index = 7)
private String residenceAddress;
@ColumnWidth(15)
@ExcelProperty(value = "手机号码", index = 8)
private String phone;
@ColumnWidth(15)
@ExcelProperty(value = "居住地", index = 9)
private String address;
@ColumnWidth(15)
@ExcelProperty(value = "居住地邮编", index = 10)
private String postcode;
@ColumnWidth(15)
@ExcelProperty(value = "送达地址", index = 11)
private String serviceAddress;
}
...@@ -38,7 +38,7 @@ public class HouseholdPv extends BaseEntity { ...@@ -38,7 +38,7 @@ public class HouseholdPv extends BaseEntity {
* 厂商 * 厂商
*/ */
@TableField("platform_company_id") @TableField("platform_company_id")
private String platformCompanyId; private Long platformCompanyId;
/** /**
* 性别 * 性别
......
package com.yeejoin.amos.boot.module.jxiop.api.mapper; package com.yeejoin.amos.boot.module.jxiop.api.mapper;
import com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvDto;
import com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvImport;
import com.yeejoin.amos.boot.module.jxiop.api.entity.HouseholdPv; import com.yeejoin.amos.boot.module.jxiop.api.entity.HouseholdPv;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 户用光伏表 Mapper 接口 * 户用光伏表 Mapper 接口
...@@ -11,4 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -11,4 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface HouseholdPvMapper extends BaseMapper<HouseholdPv> { public interface HouseholdPvMapper extends BaseMapper<HouseholdPv> {
List<HouseholdPvImport> selectExportList(@Param("dto")HouseholdPvDto dto );
} }
package com.yeejoin.amos.boot.module.jxiop.api.service; package com.yeejoin.amos.boot.module.jxiop.api.service;
import com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvDto;
import com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvImport;
import java.util.List;
/** /**
* 户用光伏表接口类 * 户用光伏表接口类
* *
...@@ -9,4 +14,9 @@ package com.yeejoin.amos.boot.module.jxiop.api.service; ...@@ -9,4 +14,9 @@ package com.yeejoin.amos.boot.module.jxiop.api.service;
*/ */
public interface IHouseholdPvService { public interface IHouseholdPvService {
void importData(List<HouseholdPvImport> list);
List<HouseholdPvImport> selectExportList(HouseholdPvDto dto);
void deleteBatch(List<Long> ids);
} }
...@@ -2,4 +2,21 @@ ...@@ -2,4 +2,21 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.jxiop.api.mapper.HouseholdPvMapper"> <mapper namespace="com.yeejoin.amos.boot.module.jxiop.api.mapper.HouseholdPvMapper">
<select id="selectExportList" resultType="com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvImport">
SELECT * FROM `household_pv` hp
<where>
<if test="dto.name != null and dto.name != ''">
and hp.name like concat('%',#{dto.name},'%')
</if>
<if test="dto.platformCompanyId != null and dto.platformCompanyId != ''">
and hp.platform_company_id = #{dto.platformCompanyId}
</if>
<if test="dto.residenceAddress != null and dto.residenceAddress != ''">
and hp.residence_address like concat('%',#{residenceAddress},'%')
</if>
<if test="dto.number != null and dto.number != ''">
and hp.number like concat('%',#{dto.number},'%')
</if>
</where>
</select>
</mapper> </mapper>
package com.yeejoin.amos.boot.module.jxiop.biz.controller; package com.yeejoin.amos.boot.module.jxiop.biz.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.excel.ExcelUtil;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvImport;
import com.yeejoin.amos.boot.module.jxiop.api.entity.HouseholdPv;
import com.yeejoin.amos.boot.module.jxiop.api.service.IHouseholdPvService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.core.io.ClassPathResource;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.io.*;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.yeejoin.amos.boot.module.jxiop.biz.service.impl.HouseholdPvServiceImpl; import com.yeejoin.amos.boot.module.jxiop.biz.service.impl.HouseholdPvServiceImpl;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
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 org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.*; 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.module.jxiop.api.dto.HouseholdPvDto; import com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvDto;
...@@ -31,6 +58,9 @@ public class HouseholdPvController extends BaseController { ...@@ -31,6 +58,9 @@ public class HouseholdPvController extends BaseController {
@Autowired @Autowired
HouseholdPvServiceImpl householdPvServiceImpl; HouseholdPvServiceImpl householdPvServiceImpl;
@Autowired
IHouseholdPvService iHouseholdPvService;
/** /**
* 新增户用光伏表 * 新增户用光伏表
* *
...@@ -53,7 +83,7 @@ public class HouseholdPvController extends BaseController { ...@@ -53,7 +83,7 @@ public class HouseholdPvController 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<HouseholdPvDto> updateBySequenceNbrHouseholdPv(@RequestBody HouseholdPvDto model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) { public ResponseModel<HouseholdPvDto> updateBySequenceNbrHouseholdPv(@RequestBody HouseholdPvDto model, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr); model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(householdPvServiceImpl.updateWithModel(model)); return ResponseHelper.buildResponse(householdPvServiceImpl.updateWithModel(model));
} }
...@@ -67,7 +97,7 @@ public class HouseholdPvController extends BaseController { ...@@ -67,7 +97,7 @@ public class HouseholdPvController 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(householdPvServiceImpl.removeById(sequenceNbr)); return ResponseHelper.buildResponse(householdPvServiceImpl.removeById(sequenceNbr));
} }
...@@ -79,7 +109,7 @@ public class HouseholdPvController extends BaseController { ...@@ -79,7 +109,7 @@ public class HouseholdPvController 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<HouseholdPvDto> selectOne(@PathVariable Long sequenceNbr) { public ResponseModel<HouseholdPvDto> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(householdPvServiceImpl.queryBySeq(sequenceNbr)); return ResponseHelper.buildResponse(householdPvServiceImpl.queryBySeq(sequenceNbr));
} }
...@@ -92,14 +122,15 @@ public class HouseholdPvController extends BaseController { ...@@ -92,14 +122,15 @@ public class HouseholdPvController extends BaseController {
* @return * @return
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page") @PostMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "户用光伏表分页查询", notes = "户用光伏表分页查询") @ApiOperation(httpMethod = "GET", value = "户用光伏表分页查询", notes = "户用光伏表分页查询")
public ResponseModel<Page<HouseholdPvDto>> queryForPage(@RequestParam(value = "current") int current,@RequestParam public ResponseModel<IPage<HouseholdPv>> queryForPage(@RequestParam(value = "current") String current,
(value = "size") int size) { @RequestParam(value = "size") String size,
Page<HouseholdPvDto> page = new Page<HouseholdPvDto>(); HouseholdPvDto dto) {
page.setCurrent(current); Page<HouseholdPv> page = new Page<>();
page.setSize(size); page.setCurrent(Long.parseLong(current));
return ResponseHelper.buildResponse(householdPvServiceImpl.queryForHouseholdPvPage(page)); page.setSize(Long.parseLong(size));
return ResponseHelper.buildResponse(householdPvServiceImpl.queryForHouseholdPvPage(page, dto));
} }
/** /**
...@@ -108,9 +139,98 @@ public class HouseholdPvController extends BaseController { ...@@ -108,9 +139,98 @@ public class HouseholdPvController 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<HouseholdPvDto>> selectForList() { public ResponseModel<List<HouseholdPvDto>> selectForList() {
return ResponseHelper.buildResponse(householdPvServiceImpl.queryForHouseholdPvList()); return ResponseHelper.buildResponse(householdPvServiceImpl.queryForHouseholdPvList());
} }
@GetMapping(value = "/exportTemplates")
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "模板下载", notes = "模板下载")
public void exportTemplates(HttpServletResponse response) {
DataInputStream in = null;
OutputStream out = null;
try {
response.reset();
response.setCharacterEncoding("UTF-8");
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("模板.xlsx", "UTF-8"));
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
FileInputStream fileInputStream = new FileInputStream(new File("amos-boot-system-jxiop/amos-boot-module-jxiop-biz/src/main/resource/templates/householdTemplates.xls"));
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);
}
out.close();
in.close();
} 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();
}
}
}
@GetMapping(value = "/importData")
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "模板下载", notes = "模板下载")
public ResponseModel<Object> importData(MultipartFile file) {
try {
ExcelReader reader = EasyExcelFactory.read(file.getInputStream()).build();
List<HouseholdPvImport> list = ExcelUtil.readExcel(reader, HouseholdPvImport.class, 0);
iHouseholdPvService.importData(list);
} catch (IOException e) {
e.printStackTrace();
throw new BadRequest(e.getMessage());
}
return ResponseHelper.buildResponse("ok");
}
@GetMapping(value = "/exportData")
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "数据导出", notes = "数据导出")
public void exportData(HttpServletResponse response, HouseholdPvDto dto) {
try {
response.setCharacterEncoding("UTF-8");
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("组织机构信息.xlsx", "UTF-8"));
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
ExcelWriter writer = EasyExcelFactory.write(response.getOutputStream(), HouseholdPvImport.class).build();
WriteSheet sheet = EasyExcelFactory.writerSheet(0, String.valueOf(System.currentTimeMillis())).build();
List<HouseholdPvImport> list = iHouseholdPvService.selectExportList(dto);
writer.write(list, sheet);
writer.finish();
} catch (Exception e) {
e.printStackTrace();
}
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/deleteBatch")
@ApiOperation(httpMethod = "POST", value = "批量删除", notes = "批量删除")
public ResponseModel<Object> deleteBatch(@RequestBody List<Long> ids) {
iHouseholdPvService.deleteBatch(ids);
return ResponseHelper.buildResponse("ok");
}
} }
package com.yeejoin.amos.boot.module.jxiop.biz.service.impl; package com.yeejoin.amos.boot.module.jxiop.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.common.api.enums.ExcelSelectData;
import com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvImport;
import com.yeejoin.amos.boot.module.jxiop.api.entity.HouseholdPv; import com.yeejoin.amos.boot.module.jxiop.api.entity.HouseholdPv;
import com.yeejoin.amos.boot.module.jxiop.api.mapper.HouseholdPvMapper; import com.yeejoin.amos.boot.module.jxiop.api.mapper.HouseholdPvMapper;
import com.yeejoin.amos.boot.module.jxiop.api.service.IHouseholdPvService; import com.yeejoin.amos.boot.module.jxiop.api.service.IHouseholdPvService;
import com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvDto; import com.yeejoin.amos.boot.module.jxiop.api.dto.HouseholdPvDto;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTimeUtils;
import org.joda.time.LocalDateTime;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
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;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -17,11 +35,29 @@ import java.util.List; ...@@ -17,11 +35,29 @@ import java.util.List;
*/ */
@Service @Service
public class HouseholdPvServiceImpl extends BaseService<HouseholdPvDto,HouseholdPv,HouseholdPvMapper> implements IHouseholdPvService { public class HouseholdPvServiceImpl extends BaseService<HouseholdPvDto,HouseholdPv,HouseholdPvMapper> implements IHouseholdPvService {
@Autowired
HouseholdPvMapper householdPvMapper;
/** /**
* 分页查询 * 分页查询
*/ */
public Page<HouseholdPvDto> queryForHouseholdPvPage(Page<HouseholdPvDto> page) { public IPage<HouseholdPv> queryForHouseholdPvPage(Page<HouseholdPv> page, HouseholdPvDto dto) {
return this.queryForPage(page, null, false); LambdaQueryWrapper<HouseholdPv> lambda = new QueryWrapper<HouseholdPv>().lambda();
if (!ObjectUtils.isEmpty(dto.getName())){
lambda.like(HouseholdPv::getName, dto.getName());
}
if (!ObjectUtils.isEmpty(dto.getPlatformCompanyId())){
lambda.eq(HouseholdPv::getPlatformCompanyId, dto.getPlatformCompanyId());
}
if (!ObjectUtils.isEmpty(dto.getAddress())){
lambda.like(HouseholdPv::getAddress, dto.getAddress());
}
if (!ObjectUtils.isEmpty(dto.getNumber())){
lambda.like(HouseholdPv::getNumber, dto.getNumber());
}
return householdPvMapper.selectPage(page, lambda);
} }
/** /**
...@@ -30,4 +66,34 @@ public class HouseholdPvServiceImpl extends BaseService<HouseholdPvDto,Household ...@@ -30,4 +66,34 @@ public class HouseholdPvServiceImpl extends BaseService<HouseholdPvDto,Household
public List<HouseholdPvDto> queryForHouseholdPvList() { public List<HouseholdPvDto> queryForHouseholdPvList() {
return this.queryForList("" , false); return this.queryForList("" , false);
} }
@Override
public void importData(List<HouseholdPvImport> list) {
ArrayList<HouseholdPv> householdPvs = new ArrayList<>();
list.forEach(item ->{
HouseholdPv householdPv = new HouseholdPv();
householdPv.setCreateTime(LocalDateTime.now().toDate());
if (!ObjectUtils.isEmpty(item.getExpiryTime())){
try {
Date date = DateUtils.dateParse(item.getExpiryTime(), DateUtils.DATE_PATTERN);
householdPv.setExpiryTime(date);
} catch (ParseException e) {
e.printStackTrace();
}
}
BeanUtils.copyProperties(item,householdPv);
householdPvs.add(householdPv);
});
this.saveBatch(householdPvs);
}
@Override
public List<HouseholdPvImport> selectExportList(HouseholdPvDto dto) {
return householdPvMapper.selectExportList(dto);
}
@Override
public void deleteBatch(List<Long> ids) {
householdPvMapper.deleteBatchIds(ids);
}
} }
\ 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