Compare commits
2 Commits
ec33bcd1ce
...
5ffd0e1c93
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5ffd0e1c93 | ||
|
|
3b2a63352c |
@ -29,4 +29,14 @@ public class DictBaseConstants {
|
||||
public static final String CYCLE_DICT = "cycle_dict";
|
||||
/** 企业资产临期判定时间 */
|
||||
public static final String COMPANY_PROPERTY_EXPIRED = "company_property_expired";
|
||||
/** 客户状态 */
|
||||
public static final String DICT_CUS_INFO_STATUS = "cus_info_status";
|
||||
/** 卡券类型 */
|
||||
public static final String MEMBER_COUPON_TYPE = "member_coupon_type";
|
||||
/** 核销规则 */
|
||||
public static final String MEMBER_COUPON_OUT_RULE = "member_coupon_out_rule";
|
||||
/** 适用车型 */
|
||||
public static final String MEMBER_CAR = "member_car";
|
||||
/** 活动类型 */
|
||||
public static final String MEMBER_ACTIVE = "member_active";
|
||||
}
|
||||
|
||||
@ -1,10 +1,15 @@
|
||||
package cn.iocoder.yudao.module.custom.controller.admin;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
import cn.iocoder.yudao.module.custom.entity.CustomerMain;
|
||||
import cn.iocoder.yudao.module.custom.service.CustomerCarService;
|
||||
import cn.iocoder.yudao.module.custom.service.CustomerMainService;
|
||||
import cn.iocoder.yudao.module.custom.vo.CustomerExportVO;
|
||||
import cn.iocoder.yudao.module.custom.vo.CustomerMainPageReqVO;
|
||||
import cn.iocoder.yudao.module.custom.vo.CustomerMainRespVO;
|
||||
import cn.iocoder.yudao.module.custom.vo.CustomerMainSaveReqVO;
|
||||
@ -20,8 +25,12 @@ import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.common.BaseConstants.*;
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0;
|
||||
@ -44,6 +53,7 @@ public class CustomerMainController {
|
||||
private BusiLabelService busiLabelService;
|
||||
@Resource
|
||||
private CustomerCarService customerCarService;
|
||||
|
||||
/**
|
||||
* 客户管理分页列表查询
|
||||
*
|
||||
@ -76,7 +86,7 @@ public class CustomerMainController {
|
||||
@Operation(summary = "创建客户管理")
|
||||
@PreAuthorize("@ss.hasPermission('base:customer-main:create')")
|
||||
public CommonResult<Boolean> createCustomerMain(@Valid @RequestBody CustomerMainSaveReqVO saveReqVO) {
|
||||
customerMainService.saveCustomer(saveReqVO,SIGN_CREATE);
|
||||
customerMainService.saveCustomer(saveReqVO, SIGN_CREATE);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@ -99,7 +109,7 @@ public class CustomerMainController {
|
||||
@Operation(summary = "更新客户管理")
|
||||
@PreAuthorize("@ss.hasPermission('base:customer-main:update')")
|
||||
public CommonResult<Boolean> updateCustomerMain(@Valid @RequestBody CustomerMainSaveReqVO saveReqVO) {
|
||||
customerMainService.saveCustomer(saveReqVO,SIGN_UPDATE);
|
||||
customerMainService.saveCustomer(saveReqVO, SIGN_UPDATE);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@ -185,10 +195,10 @@ public class CustomerMainController {
|
||||
/**
|
||||
* 根据姓名和电话查询单条记录
|
||||
*
|
||||
* @param customerMain 查询对象
|
||||
* @author 小李
|
||||
* @date 11:19 2024/10/8
|
||||
* @param customerMain 查询对象
|
||||
**/
|
||||
**/
|
||||
@PostMapping("/getByNameAndMobile")
|
||||
@Operation(summary = "根据姓名和电话查询单条记录")
|
||||
public CommonResult<?> getByNameAndMobile(@Valid @RequestBody CustomerMain customerMain) {
|
||||
@ -201,4 +211,39 @@ public class CustomerMainController {
|
||||
}
|
||||
throw exception0(500, "系统异常");
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出数据
|
||||
*
|
||||
* @author 小李
|
||||
* @date 19:33 2024/12/2
|
||||
* @param pageReqVO 请求对象
|
||||
**/
|
||||
@GetMapping("/export")
|
||||
@Operation(summary = "导出数据")
|
||||
public void exportData(CustomerMainPageReqVO pageReqVO, HttpServletResponse response) throws IOException {
|
||||
int pageNo = 1, pageSize = 1000;
|
||||
List<CustomerExportVO> list = new ArrayList<>();
|
||||
Page<CustomerMainRespVO> page = new Page<>(pageNo, pageSize);
|
||||
do {
|
||||
IPage<CustomerMainRespVO> customerMainRespVOIPage = customerMainService.queryListPage(pageReqVO, page);
|
||||
List<CustomerMainRespVO> records = customerMainRespVOIPage.getRecords();
|
||||
if (CollUtil.isEmpty(records)){
|
||||
break;
|
||||
}
|
||||
List<CustomerExportVO> convertedRecords = records.stream().map(item -> BeanUtils.toBean(item, CustomerExportVO.class)).collect(Collectors.toList());
|
||||
list.addAll(convertedRecords);
|
||||
pageNo++;
|
||||
page.setCurrent(pageNo);
|
||||
}while (true);
|
||||
if (CollUtil.isEmpty(list)){
|
||||
throw exception0(500, "没有数据可以导出");
|
||||
}
|
||||
list.forEach(item -> {
|
||||
if (ObjectUtil.isNotEmpty(item.getIsHangAccount())){
|
||||
item.setIsHangAccount(item.getIsHangAccount().equals("0") ? "否" : "是");
|
||||
}
|
||||
});
|
||||
ExcelUtils.write(response, "客户数据.xls", "数据", CustomerExportVO.class, list);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,66 @@
|
||||
package cn.iocoder.yudao.module.custom.vo;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
||||
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
import static cn.iocoder.yudao.common.DictBaseConstants.*;
|
||||
|
||||
/**
|
||||
* 用于导出客户数据VO
|
||||
*
|
||||
* @author 小李
|
||||
* @date 19:20 2024/12/2
|
||||
**/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class CustomerExportVO {
|
||||
|
||||
@ExcelProperty("客户名称")
|
||||
private String cusName;
|
||||
|
||||
@ExcelProperty(value = "性别", converter = DictConvert.class)
|
||||
@DictFormat(DICT_SYS_USER_SEX)
|
||||
private String sex;
|
||||
|
||||
@ExcelProperty("会员等级")
|
||||
private String levelName;
|
||||
|
||||
@ExcelProperty("联系方式")
|
||||
private String phoneNumber;
|
||||
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ExcelProperty("生日")
|
||||
private LocalDateTime birthday;
|
||||
|
||||
@ExcelProperty("住址")
|
||||
private String address;
|
||||
|
||||
@ExcelProperty("是否挂账")
|
||||
private String isHangAccount;
|
||||
|
||||
@ExcelProperty(value = "客户来源", converter = DictConvert.class)
|
||||
@DictFormat(DICT_CUS_DATA_FROM)
|
||||
private String dataFrom;
|
||||
|
||||
@ExcelProperty(value = "最近办理业务", converter = DictConvert.class)
|
||||
@DictFormat(DICT_CUS_BUSI_TYPE)
|
||||
private String nearDoContent;
|
||||
|
||||
@ExcelProperty("最近业务办理时间")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
private LocalDateTime nearDoTime;
|
||||
|
||||
@ExcelProperty(value = "客户状态", converter = DictConvert.class)
|
||||
@DictFormat(DICT_CUS_INFO_STATUS)
|
||||
private String status;
|
||||
}
|
||||
@ -1,9 +1,13 @@
|
||||
package cn.iocoder.yudao.module.member.controller.admin;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
import cn.iocoder.yudao.module.member.entity.ActiveMain;
|
||||
import cn.iocoder.yudao.module.member.service.ActiveMainService;
|
||||
import cn.iocoder.yudao.module.member.vo.ActiveMainExportVO;
|
||||
import cn.iocoder.yudao.module.member.vo.ActiveMainPageReqVO;
|
||||
import cn.iocoder.yudao.module.member.vo.ActiveMainRespVO;
|
||||
import cn.iocoder.yudao.module.member.vo.ActiveMainSaveReqVO;
|
||||
@ -17,10 +21,15 @@ import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
@Tag(name = "管理后台 - 营销活动")
|
||||
@ -111,4 +120,38 @@ public class ActiveMainController {
|
||||
return success(activeMainService.queryListPage(pageReqVO, page));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出数据
|
||||
*
|
||||
* @author 小李
|
||||
* @date 20:25 2024/12/2
|
||||
* @param pageReqVO 请求对象
|
||||
**/
|
||||
@GetMapping("/export")
|
||||
@Operation(summary = "导出数据")
|
||||
public void exportData(ActiveMainPageReqVO pageReqVO, HttpServletResponse response)throws IOException {
|
||||
int pageNo = 1, pageSize = 1000;
|
||||
List<ActiveMainExportVO> list = new ArrayList<>();
|
||||
Page<ActiveMainRespVO> page = new Page<>(pageNo, pageSize);
|
||||
do {
|
||||
IPage<ActiveMainRespVO> activeMainRespVOIPage = activeMainService.queryListPage(pageReqVO, page);
|
||||
List<ActiveMainRespVO> records = activeMainRespVOIPage.getRecords();
|
||||
if (CollUtil.isEmpty(records)){
|
||||
break;
|
||||
}
|
||||
List<ActiveMainExportVO> convertedRecords = records.stream().map(item -> BeanUtils.toBean(item, ActiveMainExportVO.class)).collect(Collectors.toList());
|
||||
list.addAll(convertedRecords);
|
||||
pageNo++;
|
||||
page.setCurrent(pageNo);
|
||||
}while (true);
|
||||
if (CollUtil.isEmpty(list)){
|
||||
throw exception0(500, "没有数据可以导出");
|
||||
}
|
||||
list.forEach(item -> {
|
||||
if (ObjectUtil.isNotEmpty(item.getStatus())){
|
||||
item.setStatus(item.getStatus().equals("01") ? "启用" : "停用");
|
||||
}
|
||||
});
|
||||
ExcelUtils.write(response, "营销活动数据.xls", "数据", ActiveMainExportVO.class, list);
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,7 @@
|
||||
package cn.iocoder.yudao.module.member.controller.admin;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
@ -8,10 +10,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
import cn.iocoder.yudao.module.member.entity.MemberCoupon;
|
||||
import cn.iocoder.yudao.module.member.service.MemberCouponService;
|
||||
import cn.iocoder.yudao.module.member.vo.MemberCouponPageReqVO;
|
||||
import cn.iocoder.yudao.module.member.vo.MemberCouponRespVO;
|
||||
import cn.iocoder.yudao.module.member.vo.MemberCouponSaveReqVO;
|
||||
import cn.iocoder.yudao.module.member.vo.MemberLevelRespVO;
|
||||
import cn.iocoder.yudao.module.member.vo.*;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
@ -25,9 +24,12 @@ import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
@Tag(name = "管理后台 - 基础卡券")
|
||||
@ -138,5 +140,34 @@ public class MemberCouponController {
|
||||
return success(couponService.queryListPage(pageReqVO, page));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出数据
|
||||
*
|
||||
* @author 小李
|
||||
* @date 19:53 2024/12/2
|
||||
* @param pageReqVO 请求数据
|
||||
**/
|
||||
@GetMapping("/export")
|
||||
@Operation(summary = "导出数据")
|
||||
public void exportData(MemberCouponPageReqVO pageReqVO, HttpServletResponse response)throws IOException{
|
||||
int pageNo = 1, pageSize = 1000;
|
||||
List<MemberCouponExportVO> list = new ArrayList<>();
|
||||
Page<MemberCouponRespVO> page = new Page<>(pageNo, pageSize);
|
||||
do {
|
||||
IPage<MemberCouponRespVO> memberCouponRespVOIPage = couponService.queryListPage(pageReqVO, page);
|
||||
List<MemberCouponRespVO> records = memberCouponRespVOIPage.getRecords();
|
||||
if (CollUtil.isEmpty(records)){
|
||||
break;
|
||||
}
|
||||
List<MemberCouponExportVO> convertedRecords = records.stream().map(item -> BeanUtils.toBean(item, MemberCouponExportVO.class)).collect(Collectors.toList());
|
||||
list.addAll(convertedRecords);
|
||||
pageNo++;
|
||||
page.setCurrent(pageNo);
|
||||
}while (true);
|
||||
if (CollUtil.isEmpty(list)){
|
||||
throw exception0(500, "没有数据可以导出");
|
||||
}
|
||||
ExcelUtils.write(response, "基础卡券数据.xls", "数据", MemberCouponExportVO.class, list);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,9 +1,13 @@
|
||||
package cn.iocoder.yudao.module.member.controller.admin;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
import cn.iocoder.yudao.module.member.entity.MemberLevel;
|
||||
import cn.iocoder.yudao.module.member.service.MemberLevelService;
|
||||
import cn.iocoder.yudao.module.member.vo.MemberLevelExportVO;
|
||||
import cn.iocoder.yudao.module.member.vo.MemberLevelPageReqVO;
|
||||
import cn.iocoder.yudao.module.member.vo.MemberLevelRespVO;
|
||||
import cn.iocoder.yudao.module.member.vo.MemberLevelSaveReqVO;
|
||||
@ -17,10 +21,15 @@ import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
|
||||
@ -127,4 +136,39 @@ public class MemberLevelController {
|
||||
return success(levelService.queryListAll(pageReqVO));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 导出数据
|
||||
*
|
||||
* @author 小李
|
||||
* @date 19:41 2024/12/2
|
||||
* @param pageReqVO 请求对象
|
||||
**/
|
||||
@GetMapping("/export")
|
||||
@Operation(summary = "导出数据")
|
||||
public void exportData(MemberLevelPageReqVO pageReqVO, HttpServletResponse response)throws IOException {
|
||||
int pageNo = 1, pageSize = 1000;
|
||||
List<MemberLevelExportVO> list = new ArrayList<>();
|
||||
Page<MemberLevelRespVO> page = new Page<>(pageNo, pageSize);
|
||||
do {
|
||||
IPage<MemberLevelRespVO> memberLevelRespVOIPage = levelService.queryListPage(pageReqVO, page);
|
||||
List<MemberLevelRespVO> records = memberLevelRespVOIPage.getRecords();
|
||||
if (CollUtil.isEmpty(records)){
|
||||
break;
|
||||
}
|
||||
List<MemberLevelExportVO> convertedRecords = records.stream().map(item -> BeanUtils.toBean(item, MemberLevelExportVO.class)).collect(Collectors.toList());
|
||||
list.addAll(convertedRecords);
|
||||
pageNo++;
|
||||
page.setCurrent(pageNo);
|
||||
}while (true);
|
||||
if (CollUtil.isEmpty(list)){
|
||||
throw exception0(500, "没有数据可以导出");
|
||||
}
|
||||
list.forEach(item -> {
|
||||
if (ObjectUtil.isNotEmpty(item.getStatus())){
|
||||
item.setStatus(item.getStatus().equals("01") ? "启用" : "停用");
|
||||
}
|
||||
});
|
||||
ExcelUtils.write(response, "会员等级数据.xls", "数据", MemberLevelExportVO.class, list);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,47 @@
|
||||
package cn.iocoder.yudao.module.member.vo;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
||||
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.common.DictBaseConstants.MEMBER_ACTIVE;
|
||||
|
||||
/**
|
||||
* 用于导出营销活动VO
|
||||
*
|
||||
* @author 小李
|
||||
* @date 20:26 2024/12/2
|
||||
**/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class ActiveMainExportVO {
|
||||
|
||||
@ExcelProperty("活动名称")
|
||||
private String name;
|
||||
|
||||
@ExcelProperty(value = "活动类型", converter = DictConvert.class)
|
||||
@DictFormat(MEMBER_ACTIVE)
|
||||
private String type;
|
||||
|
||||
@ExcelProperty("活动开始时间")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime beginTime;
|
||||
|
||||
@ExcelProperty("活动结束时间")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime endTime;
|
||||
|
||||
@ExcelProperty("活动状态")
|
||||
private String status;
|
||||
|
||||
@ExcelProperty("活动描述")
|
||||
private String remark;
|
||||
}
|
||||
@ -0,0 +1,56 @@
|
||||
package cn.iocoder.yudao.module.member.vo;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
||||
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.common.DictBaseConstants.*;
|
||||
|
||||
/**
|
||||
* 用于基础卡券导出VO
|
||||
*
|
||||
* @author 小李
|
||||
* @date 19:55 2024/12/2
|
||||
**/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class MemberCouponExportVO {
|
||||
|
||||
@ExcelProperty("卡券名称")
|
||||
private String name;
|
||||
|
||||
@ExcelProperty(value = "卡券类型", converter = DictConvert.class)
|
||||
@DictFormat(MEMBER_COUPON_TYPE)
|
||||
private String type;
|
||||
|
||||
@ExcelProperty(value = "适用车型", converter = DictConvert.class)
|
||||
@DictFormat(MEMBER_CAR)
|
||||
private String carModel;
|
||||
|
||||
@ExcelProperty(value = "核销规则", converter = DictConvert.class)
|
||||
@DictFormat(MEMBER_COUPON_OUT_RULE)
|
||||
private String outRule;
|
||||
|
||||
@ExcelProperty("开始有效期")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime beginTime;
|
||||
|
||||
@ExcelProperty("结束有效期")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime endTime;
|
||||
|
||||
@ExcelProperty("面额")
|
||||
private BigDecimal amount;
|
||||
|
||||
@ExcelProperty("备注")
|
||||
private String remark;
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package cn.iocoder.yudao.module.member.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 用于会员等级导出VO
|
||||
*
|
||||
* @author 小李
|
||||
* @date 19:42 2024/12/2
|
||||
**/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class MemberLevelExportVO {
|
||||
|
||||
@ExcelProperty("等级名称")
|
||||
private String name;
|
||||
|
||||
@ExcelProperty("状态")
|
||||
private String status;
|
||||
|
||||
@ExcelProperty("升级所需积分")
|
||||
private String growthValue;
|
||||
|
||||
@ExcelProperty("会员折扣")
|
||||
private BigDecimal discount;
|
||||
|
||||
@ExcelProperty("等级说明")
|
||||
private String remark;
|
||||
|
||||
@ExcelProperty("等级权益")
|
||||
private String userEquity;
|
||||
}
|
||||
@ -1,12 +1,16 @@
|
||||
package cn.iocoder.yudao.module.supplier.controller.admin;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
import cn.iocoder.yudao.module.supplier.entity.BaseSupplier;
|
||||
import cn.iocoder.yudao.module.supplier.service.BaseSupplierService;
|
||||
import cn.iocoder.yudao.module.supplier.vo.BaseSupplierPageReqVO;
|
||||
import cn.iocoder.yudao.module.supplier.vo.BaseSupplierRespVO;
|
||||
import cn.iocoder.yudao.module.supplier.vo.BaseSupplierSaveReqVO;
|
||||
import cn.iocoder.yudao.module.supplier.vo.SupplierExportVO;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@ -18,8 +22,15 @@ import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
@Tag(name = "管理后台 - 供应商")
|
||||
@ -137,4 +148,40 @@ public class BaseSupplierController {
|
||||
.like(BaseSupplier::getName,name);
|
||||
return success(baseSupplierService.list(queryWrapper));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出数据
|
||||
*
|
||||
* @author 小李
|
||||
* @date 17:30 2024/12/2
|
||||
* @param pageReqVO 请求对象
|
||||
**/
|
||||
@GetMapping("/export")
|
||||
@Operation(summary = "导出数据")
|
||||
public void exportData(BaseSupplierPageReqVO pageReqVO, HttpServletResponse response)throws IOException {
|
||||
int pageNo = 1, pageSize = 1000;
|
||||
List<SupplierExportVO> list = new ArrayList<>();
|
||||
Page<BaseSupplierRespVO> page = new Page<>(pageNo, pageSize);
|
||||
do {
|
||||
IPage<BaseSupplierRespVO> baseSupplierRespVOIPage = baseSupplierService.queryListPage(pageReqVO, page);
|
||||
List<BaseSupplierRespVO> records = baseSupplierRespVOIPage.getRecords();
|
||||
if (CollUtil.isEmpty(records)){
|
||||
break;
|
||||
}
|
||||
List<SupplierExportVO> convertedRecords = records.stream().map(item -> BeanUtils.toBean(item, SupplierExportVO.class)).collect(Collectors.toList());
|
||||
list.addAll(convertedRecords);
|
||||
pageNo++;
|
||||
page.setCurrent(pageNo);
|
||||
}while (true);
|
||||
if (CollUtil.isEmpty(list)){
|
||||
throw exception0(500, "没有数据可以导出");
|
||||
}
|
||||
list.forEach(item -> {
|
||||
if (ObjectUtil.isNotEmpty(item.getStatus())){
|
||||
item.setStatus(item.getStatus().equals("01") ? "启用" : "禁用");
|
||||
}
|
||||
item.setCorpId(ObjectUtil.isEmpty(item.getCorpId()) ? "未绑定": "已绑定");
|
||||
});
|
||||
ExcelUtils.write(response, "供应商数据.xls", "数据", SupplierExportVO.class, list);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
package cn.iocoder.yudao.module.supplier.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 用于导出供应商VO
|
||||
*
|
||||
* @author 小李
|
||||
* @date 17:30 2024/12/2
|
||||
**/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class SupplierExportVO {
|
||||
|
||||
@ExcelProperty("供应商名称")
|
||||
private String name;
|
||||
|
||||
@ExcelProperty("联系人")
|
||||
private String linkName;
|
||||
|
||||
@ExcelProperty("联系电话")
|
||||
private String linkPhone;
|
||||
|
||||
@ExcelProperty("手机号码")
|
||||
private String phone;
|
||||
|
||||
@ExcelProperty("传真")
|
||||
private String fax;
|
||||
|
||||
@ExcelProperty("地址")
|
||||
private String address;
|
||||
|
||||
@ExcelProperty("状态")
|
||||
private String status;
|
||||
|
||||
@ExcelProperty("备注")
|
||||
private String remark;
|
||||
|
||||
@ExcelProperty("绑定状态")
|
||||
private String corpId;
|
||||
}
|
||||
@ -19,4 +19,7 @@ public interface RepairDictConstants {
|
||||
|
||||
/** 配件相关提醒配置 */
|
||||
String REPAIR_WARES_NOTICE = "repair_wares_notice";
|
||||
|
||||
/** 维修工人工种 */
|
||||
String REPAIR_WORK_TYPE = "repair_work_type";
|
||||
}
|
||||
|
||||
@ -1,15 +1,19 @@
|
||||
package cn.iocoder.yudao.module.base.controller.admin;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.common.MessageSend;
|
||||
import cn.iocoder.yudao.common.dto.MessageDTO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
import cn.iocoder.yudao.module.app.controller.admin.NotifyMessageSocket;
|
||||
import cn.iocoder.yudao.module.base.entity.RepairWorker;
|
||||
import cn.iocoder.yudao.module.base.service.RepairWorkerService;
|
||||
import cn.iocoder.yudao.module.base.vo.RepairWorkerPageReqVO;
|
||||
import cn.iocoder.yudao.module.base.vo.RepairWorkerRespVO;
|
||||
import cn.iocoder.yudao.module.base.vo.RepairWorkerSaveReqVO;
|
||||
import cn.iocoder.yudao.module.base.vo.WorkerExportVO;
|
||||
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@ -21,11 +25,14 @@ import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.common.BaseConstants.QUALS_INTERIM_PERIOD;
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.ok;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
@ -168,4 +175,41 @@ public class RepairWorkerController {
|
||||
}
|
||||
return ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出数据
|
||||
*
|
||||
* @author 小李
|
||||
* @date 17:50 2024/12/2
|
||||
* @param pageReqVO 请求对象
|
||||
**/
|
||||
@GetMapping("/export")
|
||||
@Operation(summary = "导出数据")
|
||||
public void exportData(RepairWorkerPageReqVO pageReqVO, HttpServletResponse response)throws IOException{
|
||||
int pageNo = 1, pageSize = 1000;
|
||||
List<WorkerExportVO> list = new ArrayList<>();
|
||||
Page<RepairWorkerRespVO> page = new Page<>(pageNo,pageSize);
|
||||
do {
|
||||
IPage<RepairWorkerRespVO> repairWorkerRespVOIPage = workerService.queryListPage(pageReqVO, page);
|
||||
List<RepairWorkerRespVO> records = repairWorkerRespVOIPage.getRecords();
|
||||
if (CollUtil.isEmpty(records)){
|
||||
break;
|
||||
}
|
||||
List<WorkerExportVO> convertedRecords = records.stream().map(item -> BeanUtils.toBean(item, WorkerExportVO.class)).collect(Collectors.toList());
|
||||
list.addAll(convertedRecords);
|
||||
pageNo++;
|
||||
page.setCurrent(pageNo);
|
||||
}while (true);
|
||||
|
||||
if (CollUtil.isEmpty(list)){
|
||||
throw exception0(500, "没有数据可以导出");
|
||||
}
|
||||
|
||||
list.forEach(item -> {
|
||||
if (ObjectUtil.isNotEmpty(item.getIsLeads())){
|
||||
item.setIsLeads(item.getIsLeads().equals("1") ? "班组长" : "维修工");
|
||||
}
|
||||
});
|
||||
ExcelUtils.write(response, "维修工人数据.xls", "数据", WorkerExportVO.class, list);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
package cn.iocoder.yudao.module.base.vo;
|
||||
|
||||
import cn.iocoder.yudao.common.RepairDictConstants;
|
||||
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
||||
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 用于导出维修工人VO
|
||||
*
|
||||
* @author 小李
|
||||
* @date 17:45 2024/12/2
|
||||
**/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WorkerExportVO {
|
||||
|
||||
@ExcelProperty("姓名")
|
||||
private String userName;
|
||||
|
||||
@ExcelProperty(value = "工种", converter = DictConvert.class)
|
||||
@DictFormat(RepairDictConstants.REPAIR_WORK_TYPE)
|
||||
private String workType;
|
||||
|
||||
@ExcelProperty("角色")
|
||||
private String isLeads;
|
||||
|
||||
@ExcelProperty("备注")
|
||||
private String remark;
|
||||
}
|
||||
@ -1,20 +1,30 @@
|
||||
package cn.iocoder.yudao.module.other.controller.admin;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
import cn.iocoder.yudao.module.other.entity.DlRepairOther;
|
||||
import cn.iocoder.yudao.module.other.service.DlRepairOtherService;
|
||||
import cn.iocoder.yudao.module.other.vo.DlRepairOtherReqVO;
|
||||
import cn.iocoder.yudao.module.other.vo.DlRepairOtherRespVO;
|
||||
import cn.iocoder.yudao.module.other.vo.OtherExportVO;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
/**
|
||||
@ -84,5 +94,42 @@ public class DlRepairOtherController {
|
||||
List<DlRepairOther> list = dlRepairOtherService.list(new LambdaQueryWrapper<DlRepairOther>().eq(DlRepairOther::getName, name));
|
||||
return success(list.stream().max(Comparator.comparing(DlRepairOther::getCreateTime)).orElse(null));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出数据
|
||||
*
|
||||
* @author 小李
|
||||
* @date 16:39 2024/12/2
|
||||
* @param repairOtherReqVO 请求对象
|
||||
**/
|
||||
@GetMapping("/export")
|
||||
@Operation(summary = "导出数据")
|
||||
public void exportData(DlRepairOtherReqVO repairOtherReqVO, HttpServletResponse response) throws IOException {
|
||||
int pageNo = 1, pageSize = 1000;
|
||||
List<OtherExportVO> list = new ArrayList<>();
|
||||
Page<DlRepairOther> page = new Page<>(pageNo, pageSize);
|
||||
do {
|
||||
IPage<DlRepairOther> otherPage = dlRepairOtherService.getOtherPage(repairOtherReqVO, page);
|
||||
List<DlRepairOther> records = otherPage.getRecords();
|
||||
|
||||
if (CollUtil.isEmpty(records)){
|
||||
break;
|
||||
}
|
||||
|
||||
List<OtherExportVO> convertedRecords = records.stream()
|
||||
.map(item -> BeanUtils.toBean(item, OtherExportVO.class))
|
||||
.collect(Collectors.toList());
|
||||
list.addAll(convertedRecords);
|
||||
|
||||
pageNo++;
|
||||
page.setCurrent(pageNo);
|
||||
} while (true);
|
||||
|
||||
if (CollUtil.isEmpty(list)){
|
||||
throw exception0(500, "没有数据可以导出");
|
||||
}
|
||||
|
||||
ExcelUtils.write(response, "附加数据.xls", "数据", OtherExportVO.class, list);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,24 @@
|
||||
package cn.iocoder.yudao.module.other.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 用于导出维修附加内容的VO
|
||||
*
|
||||
* @author 小李
|
||||
* @date 16:20 2024/12/2
|
||||
**/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class OtherExportVO {
|
||||
|
||||
@ExcelProperty("名称")
|
||||
private String name;
|
||||
|
||||
@ExcelProperty("价格")
|
||||
private BigDecimal price;
|
||||
}
|
||||
@ -1,28 +1,38 @@
|
||||
package cn.iocoder.yudao.module.project.controller.admin;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
import cn.iocoder.yudao.module.conf.entity.BaseType;
|
||||
import cn.iocoder.yudao.module.conf.entity.BaseWarehouse;
|
||||
import cn.iocoder.yudao.module.conf.service.BaseTypeService;
|
||||
import cn.iocoder.yudao.module.conf.service.BaseWarehouseService;
|
||||
import cn.iocoder.yudao.module.project.entity.RepairProject;
|
||||
import cn.iocoder.yudao.module.project.service.RepairProjectService;
|
||||
import cn.iocoder.yudao.module.project.vo.RepairProjectPageReqVO;
|
||||
import cn.iocoder.yudao.module.project.vo.RepairProjectRespVO;
|
||||
import cn.iocoder.yudao.module.project.vo.RepairProjectSaveReqVO;
|
||||
import cn.iocoder.yudao.module.project.vo.*;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
@Tag(name = "管理后台 - 维修项目")
|
||||
@ -34,6 +44,14 @@ public class RepairProjectController {
|
||||
@Resource
|
||||
private RepairProjectService repairProjectService;
|
||||
|
||||
@Resource
|
||||
@Lazy
|
||||
private BaseWarehouseService warehouseService;
|
||||
|
||||
@Resource
|
||||
@Lazy
|
||||
private BaseTypeService typeService;
|
||||
|
||||
/**
|
||||
* 创建维修项目
|
||||
*
|
||||
@ -137,4 +155,46 @@ public class RepairProjectController {
|
||||
public CommonResult getRepairProjectAndCateGory(){
|
||||
return success(repairProjectService.getRepairProjectAndCateGory());
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出数据
|
||||
*
|
||||
* @author 小李
|
||||
* @date 17:09 2024/12/2
|
||||
* @param pageReqVO 请求对象
|
||||
**/
|
||||
@GetMapping("/export")
|
||||
@Operation(summary = "导出数据")
|
||||
public void exportData(RepairProjectPageReqVO pageReqVO, HttpServletResponse response)throws IOException {
|
||||
int pageNo = 1, pageSize = 1000;
|
||||
List<ProjectExportVO> list = new ArrayList<>();
|
||||
Page<RepairProjectRespVO> page = new Page<>(pageNo, pageSize);
|
||||
do {
|
||||
IPage<RepairProjectRespVO> repairProjectRespVOIPage = repairProjectService.queryListPage(pageReqVO, page);
|
||||
List<RepairProjectRespVO> records = repairProjectRespVOIPage.getRecords();
|
||||
|
||||
if (CollUtil.isEmpty(records)){
|
||||
break;
|
||||
}
|
||||
|
||||
records.forEach(item -> {
|
||||
if (ObjectUtil.isNotEmpty(item.getTypeName())){
|
||||
item.setType(item.getTypeName());
|
||||
}
|
||||
});
|
||||
|
||||
List<ProjectExportVO> convertedRecords = records.stream().map(item -> BeanUtils.toBean(item, ProjectExportVO.class)).collect(Collectors.toList());
|
||||
list.addAll(convertedRecords);
|
||||
|
||||
pageNo++;
|
||||
page.setCurrent(pageNo);
|
||||
}while (true);
|
||||
|
||||
if (CollUtil.isEmpty(list)){
|
||||
throw exception0(500, "没有数据可以导出");
|
||||
}
|
||||
|
||||
ExcelUtils.write(response, "维修项目数据.xls", "数据", ProjectExportVO.class, list);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,16 +1,25 @@
|
||||
package cn.iocoder.yudao.module.project.controller.admin;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
import cn.iocoder.yudao.module.conf.entity.BaseType;
|
||||
import cn.iocoder.yudao.module.conf.entity.BaseWarehouse;
|
||||
import cn.iocoder.yudao.module.conf.service.BaseTypeService;
|
||||
import cn.iocoder.yudao.module.conf.service.BaseWarehouseService;
|
||||
import cn.iocoder.yudao.module.project.entity.RepairWares;
|
||||
import cn.iocoder.yudao.module.project.service.RepairWaresService;
|
||||
import cn.iocoder.yudao.module.project.vo.*;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Parameters;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
@ -19,10 +28,15 @@ import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
@Tag(name = "管理后台 - 配件库")
|
||||
@ -34,6 +48,14 @@ public class RepairWaresController {
|
||||
@Resource
|
||||
private RepairWaresService waresService;
|
||||
|
||||
@Resource
|
||||
@Lazy
|
||||
private BaseWarehouseService warehouseService;
|
||||
|
||||
@Resource
|
||||
@Lazy
|
||||
private BaseTypeService typeService;
|
||||
|
||||
/**
|
||||
* 创建配件库
|
||||
*
|
||||
@ -193,4 +215,54 @@ public class RepairWaresController {
|
||||
List<RepairWaresExcelVO> list = ExcelUtils.read(file, RepairWaresExcelVO.class);
|
||||
return success(waresService.importData(list, updateSupport));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出数据
|
||||
*
|
||||
* @author 小李
|
||||
* @date 17:20 2024/12/2
|
||||
* @param pageReqVO 请求对象
|
||||
**/
|
||||
@GetMapping("/export")
|
||||
@Operation(summary = "导出数据")
|
||||
public void exportData(RepairWaresPageReqVO pageReqVO, HttpServletResponse response)throws IOException {
|
||||
int pageNo = 1, pageSize = 1000;
|
||||
List<RepairWaresExcelVO> list = new ArrayList<>();
|
||||
Page<RepairWaresRespVO> page = new Page<>(pageNo, pageSize);
|
||||
do {
|
||||
IPage<RepairWaresRespVO> waresPage = waresService.getWaresPage(pageReqVO, page);
|
||||
List<RepairWaresRespVO> records = waresPage.getRecords();
|
||||
|
||||
if (CollUtil.isEmpty(records)){
|
||||
break;
|
||||
}
|
||||
|
||||
List<RepairWaresExcelVO> convertedRecords = records.stream().map(item -> BeanUtils.toBean(item, RepairWaresExcelVO.class)).collect(Collectors.toList());
|
||||
list.addAll(convertedRecords);
|
||||
|
||||
pageNo++;
|
||||
page.setCurrent(pageNo);
|
||||
}while (true);
|
||||
|
||||
if (CollUtil.isEmpty(list)){
|
||||
throw exception0(500, "没有数据可以导出");
|
||||
}
|
||||
|
||||
List<BaseWarehouse> warehouses = warehouseService.list();
|
||||
Map<String, String> warehousesMap = warehouses.stream().collect(Collectors.toMap(BaseWarehouse::getId, BaseWarehouse::getName));
|
||||
|
||||
List<BaseType> types = typeService.list(new LambdaQueryWrapper<BaseType>().eq(BaseType::getType, "02"));
|
||||
Map<String, String> typesMap = types.stream().collect(Collectors.toMap(BaseType::getId, BaseType::getName));
|
||||
|
||||
list.forEach(item -> {
|
||||
if (ObjectUtil.isNotEmpty(item.getWarehouse()) && ObjectUtil.isNotEmpty(warehousesMap.get(item.getWarehouse()))){
|
||||
item.setWarehouse(warehousesMap.get(item.getWarehouse()));
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(item.getType()) && ObjectUtil.isNotEmpty(typesMap.get(item.getType()))){
|
||||
item.setType(typesMap.get(item.getType()));
|
||||
}
|
||||
});
|
||||
|
||||
ExcelUtils.write(response, "维修配件数据.xls", "数据", RepairWaresExcelVO.class, list);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,57 @@
|
||||
package cn.iocoder.yudao.module.project.vo;
|
||||
|
||||
import cn.iocoder.yudao.common.RepairDictConstants;
|
||||
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
||||
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 用于导出维修项目的VO
|
||||
*
|
||||
* @author 小李
|
||||
* @date 17:03 2024/12/2
|
||||
**/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class ProjectExportVO {
|
||||
|
||||
@ExcelProperty("名称")
|
||||
private String name;
|
||||
|
||||
@ExcelProperty("成本")
|
||||
private Long cost;
|
||||
|
||||
@ExcelProperty("规格")
|
||||
private String spec;
|
||||
|
||||
@ExcelProperty("售价")
|
||||
private BigDecimal price;
|
||||
|
||||
@ExcelProperty("编码")
|
||||
private String code;
|
||||
|
||||
@ExcelProperty(value = "单位", converter = DictConvert.class)
|
||||
@DictFormat(RepairDictConstants.REPAIR_UNIT)
|
||||
private String unit;
|
||||
|
||||
@ExcelProperty("分类")
|
||||
private String type;
|
||||
|
||||
@ExcelProperty("工时")
|
||||
private String manHour;
|
||||
|
||||
@ExcelProperty("备注")
|
||||
private String remark;
|
||||
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user