From 0c6bb366e2ad14d7de6c099d297222770f0600a9 Mon Sep 17 00:00:00 2001 From: elliott <382696293@qq.com> Date: Fri, 19 Jan 2024 10:51:32 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=BB=91=E5=AE=9A=E4=BB=AA?= =?UTF-8?q?=E5=99=A8=E5=AF=BC=E5=87=BA=E6=A8=A1=E5=9D=97=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/domain/entity/WxUserInstrument.java | 35 ++++- .../domain/req/WxUserInstrumentExportVm.java | 144 ++++++++++++++++++ .../WxUserInstrumentController.java | 14 ++ .../service/IWxUserInstrumentService.java | 9 ++ .../impl/WxUserInstrumentServiceImpl.java | 99 ++++++++++++ .../src/views/system/userInstrument/index.vue | 135 +++++++--------- 6 files changed, 353 insertions(+), 83 deletions(-) create mode 100644 flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxUserInstrumentExportVm.java diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxUserInstrument.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxUserInstrument.java index 63b59cd..0e13b39 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxUserInstrument.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxUserInstrument.java @@ -1,5 +1,6 @@ package com.flossom.common.core.domain.entity; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -82,10 +83,19 @@ public class WxUserInstrument extends BaseEntity // 查询的绑定状态 private List bindStatusQuery; private String mapperBindStatus; - + // 查询时间 private String startTime; private String endTime; + // 导出处理查询字段 + /** + * 自定导出字段 + */ + private List exportFields = new ArrayList<>(); + + private List userInstrumentIdList = new ArrayList<>(); + // 是否全部绑定详情 all + private String queryString; public List getUserIdArray() { return userIdArray; @@ -282,6 +292,29 @@ public class WxUserInstrument extends BaseEntity this.bindStatusQuery = bindStatusQuery; } + public List getExportFields() { + return exportFields; + } + + public void setExportFields(List exportFields) { + this.exportFields = exportFields; + } + + public List getUserInstrumentIdList() { + return userInstrumentIdList; + } + + public void setUserInstrumentIdList(List userInstrumentIdList) { + this.userInstrumentIdList = userInstrumentIdList; + } + + public String getQueryString() { + return queryString; + } + + public void setQueryString(String queryString) { + this.queryString = queryString; + } @Override public String toString() { diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxUserInstrumentExportVm.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxUserInstrumentExportVm.java new file mode 100644 index 0000000..939e540 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxUserInstrumentExportVm.java @@ -0,0 +1,144 @@ +package com.flossom.common.core.domain.req; + +import com.flossom.common.core.annotation.Excel; +import com.flossom.common.core.web.domain.BaseEntity; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class WxUserInstrumentExportVm extends BaseEntity { + + @Excel(name = "序号") + private Long id; + + @Excel(name = "昵称") + private String nickname; + + @Excel(name = "手机") + private String mobile; + + @Excel(name = "保修年限") + private Long guarantee; + + @Excel(name = "用户编号") + private Long userId; + + @Excel(name = "仪器名称") + private String instrumentName; + + @Excel(name = "保修到期时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm") + private Date guaranteeEndtime; + + @Excel(name = "绑定状态") + private String bindingStatus; + + @Excel(name = "详情序号") + private Long userInstrumentLogId; + + @Excel(name = "仪器序列号") + private String userInstrumentLogSerial; + + @Excel(name = "类型") + private String userInstrumentLogBingStatus; + + @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date userInstrumentLogCreateTime; + + public String getBindingStatus() { + return bindingStatus; + } + + public void setBindingStatus(String bindingStatus) { + this.bindingStatus = bindingStatus; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getNickname() { + return nickname; + } + + public void setNickname(String nickname) { + this.nickname = nickname; + } + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public Long getGuarantee() { + return guarantee; + } + + public void setGuarantee(Long guarantee) { + this.guarantee = guarantee; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getInstrumentName() { + return instrumentName; + } + + public void setInstrumentName(String instrumentName) { + this.instrumentName = instrumentName; + } + + public Date getGuaranteeEndtime() { + return guaranteeEndtime; + } + + public void setGuaranteeEndtime(Date guaranteeEndtime) { + this.guaranteeEndtime = guaranteeEndtime; + } + + + public Long getUserInstrumentLogId() { + return userInstrumentLogId; + } + + public void setUserInstrumentLogId(Long userInstrumentLogId) { + this.userInstrumentLogId = userInstrumentLogId; + } + + public String getUserInstrumentLogSerial() { + return userInstrumentLogSerial; + } + + public void setUserInstrumentLogSerial(String userInstrumentLogSerial) { + this.userInstrumentLogSerial = userInstrumentLogSerial; + } + + public String getUserInstrumentLogBingStatus() { + return userInstrumentLogBingStatus; + } + + public void setUserInstrumentLogBingStatus(String userInstrumentLogBingStatus) { + this.userInstrumentLogBingStatus = userInstrumentLogBingStatus; + } + + public Date getUserInstrumentLogCreateTime() { + return userInstrumentLogCreateTime; + } + + public void setUserInstrumentLogCreateTime(Date userInstrumentLogCreateTime) { + this.userInstrumentLogCreateTime = userInstrumentLogCreateTime; + } +} diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserInstrumentController.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserInstrumentController.java index b12d32f..1cb816e 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserInstrumentController.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserInstrumentController.java @@ -9,7 +9,11 @@ import javax.servlet.http.HttpServletResponse; import com.flossom.common.core.domain.entity.WxInstrument; import com.flossom.common.core.domain.entity.WxUserInstrument; import com.flossom.common.core.domain.entity.WxUserMember; +import com.flossom.common.core.domain.req.WxUserInstrumentExportVm; +import com.flossom.common.core.domain.req.WxUserMemberExportVm; +import com.flossom.common.core.domain.ret.WxUserMemberRet; import com.flossom.common.core.domain.vo.WxUserMemberVo; +import com.flossom.common.core.exception.ServiceException; import com.flossom.common.core.utils.poi.ExcelUtil; import com.flossom.common.core.web.controller.BaseController; import com.flossom.common.core.web.domain.AjaxResult; @@ -147,5 +151,15 @@ public class WxUserInstrumentController extends BaseController return toAjax(wxUserInstrumentService.changeGuarantee(wxUserInstrument)); } + /** + * 批量导出用户列表 + */ + @Log(title = "批量导出", businessType = BusinessType.EXPORT) + @PostMapping("/batchExport") + public void batchExport(HttpServletResponse response, WxUserInstrument wxUserInstrument) { + List userInstrumentExportData = wxUserInstrumentService.findUserInstrumentExportData(wxUserInstrument); + ExcelUtil util = new ExcelUtil(WxUserInstrumentExportVm.class); + util.exportExcel(response, userInstrumentExportData, "用户仪器绑定数据", wxUserInstrument.getExportFields()); + } } diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserInstrumentService.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserInstrumentService.java index cc75bbb..c84a084 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserInstrumentService.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserInstrumentService.java @@ -1,6 +1,7 @@ package com.flossom.system.service; import com.flossom.common.core.domain.entity.WxUserInstrument; +import com.flossom.common.core.domain.req.WxUserInstrumentExportVm; import java.util.List; import java.util.Map; @@ -76,4 +77,12 @@ public interface IWxUserInstrumentService * @return 结果 */ public int changeGuarantee(WxUserInstrument wxUserInstrument); + + /** + * 变革保修期限 + * + * @param exportVm 导出数据实体 + * @return 结果 + */ + public List findUserInstrumentExportData(WxUserInstrument exportVm); } diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserInstrumentServiceImpl.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserInstrumentServiceImpl.java index c7a5b39..0152579 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserInstrumentServiceImpl.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserInstrumentServiceImpl.java @@ -10,10 +10,12 @@ import com.flossom.common.core.domain.entity.WxInstrumentSerial; import com.flossom.common.core.domain.entity.WxUserInstrument; import com.flossom.common.core.domain.entity.WxUserInstrumentLog; import com.flossom.common.core.domain.entity.WxUserMember; +import com.flossom.common.core.domain.req.WxUserInstrumentExportVm; import com.flossom.common.core.mapper.*; import com.flossom.common.core.utils.DateUtils; import com.flossom.common.core.utils.StringUtils; import org.apache.commons.compress.utils.Lists; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.flossom.system.service.IWxUserInstrumentService; @@ -231,6 +233,103 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService return 1; } + @Override + public List findUserInstrumentExportData(WxUserInstrument exportVm) { + // 初始化导出字段 + this.addDetailExportFields(exportVm); + + List wxUserInstruments = Lists.newArrayList(); + // 判断是不是全量导出 + if(CollectionUtils.isEmpty(exportVm.getUserInstrumentIdList())) { + // 全量导出 + wxUserInstruments = this.selectWxUserInstrumentList(exportVm); + } else { + List userInstrumentIdList = exportVm.getUserInstrumentIdList(); + for (Long id : userInstrumentIdList) { + // 针对ID获取 + WxUserInstrument userInstrument = wxUserInstrumentMapper.selectWxUserInstrumentById(id); + wxUserInstruments.add(userInstrument); + } + } + // 处理导出数据 + List wxUserInstrumentExportVms = this.handleExportData(wxUserInstruments, exportVm.getQueryString()); + + return wxUserInstrumentExportVms; + } + + // 处理导出需要的数据 + private List handleExportData(List wxUserInstruments, String flag){ + List resultList = Lists.newArrayList(); + for (WxUserInstrument wxUserInstrument: wxUserInstruments) { + WxUserInstrumentLog userInstrumentLog = new WxUserInstrumentLog(); + userInstrumentLog.setUserInstrumentId(wxUserInstrument.getId()); + List wxUserInstrumentLogList = wxUserInstrumentLogMapper.selectWxUserInstrumentLogList(userInstrumentLog); + if ("all".equals(flag)) { + // 补充日志详情数据 + if (!CollectionUtils.isEmpty(wxUserInstrumentLogList)){ + for (WxUserInstrumentLog userInstrumentLogRecord : wxUserInstrumentLogList) { + // 组装响应数据 + WxUserInstrumentExportVm exportVm = new WxUserInstrumentExportVm(); + // 先复制数据 + BeanUtils.copyProperties(wxUserInstrument,exportVm); + if (wxUserInstrument.getBindingStatus() == 0) { + exportVm.setBindingStatus("已绑定"); + } else { + exportVm.setBindingStatus("已解绑"); + } + // 补充用户信息 + WxUserMember userMember = wxUserMemberMapper.selectWxUserMemberById(wxUserInstrument.getUserId()); + if (Objects.nonNull(userMember)) { + exportVm.setNickname(userMember.getNickname()); + exportVm.setMobile(userMember.getMobile()); + } + exportVm.setUserInstrumentLogSerial(userInstrumentLogRecord.getSerial()); + exportVm.setUserInstrumentLogBingStatus(userInstrumentLogRecord.getBindingStatus() == 0 ? "已绑定" : "已解绑"); + exportVm.setUserInstrumentLogId(userInstrumentLogRecord.getId()); + exportVm.setUserInstrumentLogCreateTime(userInstrumentLogRecord.getCreateTime()); + resultList.add(exportVm); + } + } + } else { + // 组装响应数据 + WxUserInstrumentExportVm exportVm = new WxUserInstrumentExportVm(); + // 先复制数据 + BeanUtils.copyProperties(wxUserInstrument,exportVm); + if (wxUserInstrument.getBindingStatus() == 0) { + exportVm.setBindingStatus("已绑定"); + } else { + exportVm.setBindingStatus("已解绑"); + } + // 补充用户信息 + WxUserMember userMember = wxUserMemberMapper.selectWxUserMemberById(wxUserInstrument.getUserId()); + if (Objects.nonNull(userMember)) { + exportVm.setNickname(userMember.getNickname()); + exportVm.setMobile(userMember.getMobile()); + } + // 补充日志详情数据 + if (!CollectionUtils.isEmpty(wxUserInstrumentLogList)){ + WxUserInstrumentLog userInstrumentLogRecord = wxUserInstrumentLogList.get(0); + exportVm.setUserInstrumentLogSerial(userInstrumentLogRecord.getSerial()); + exportVm.setUserInstrumentLogBingStatus(userInstrumentLogRecord.getBindingStatus() == 0 ? "已绑定" : "已解绑"); + exportVm.setUserInstrumentLogId(userInstrumentLogRecord.getId()); + exportVm.setUserInstrumentLogCreateTime(userInstrumentLogRecord.getCreateTime()); + } + resultList.add(exportVm); + } + } + + return resultList; + } + + // 默认加上详情的字段 + private void addDetailExportFields(WxUserInstrument exportVm){ + List exportFields = exportVm.getExportFields(); + exportFields.add("userInstrumentLogId"); + exportFields.add("userInstrumentLogSerial"); + exportFields.add("userInstrumentLogBingStatus"); + exportFields.add("userInstrumentLogCreateTime"); + } + public int saveLog(WxUserInstrument userInstrumentRecord, int status){ WxUserInstrumentLog log = new WxUserInstrumentLog(); log.setUserInstrumentId(userInstrumentRecord.getId()); diff --git a/flossom-ui/src/views/system/userInstrument/index.vue b/flossom-ui/src/views/system/userInstrument/index.vue index fb9b9ee..8e05853 100644 --- a/flossom-ui/src/views/system/userInstrument/index.vue +++ b/flossom-ui/src/views/system/userInstrument/index.vue @@ -311,44 +311,40 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - + + + + +