| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- package com.ydtech.modules.inv.service.impl;
- import cn.afterturn.easypoi.excel.entity.ExportParams;
- import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
- import cn.hutool.core.util.StrUtil;
- import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.ydtech.constants.enums.dict.ApprovalStatusEnum;
- import com.ydtech.core.page.HttpResult;
- import com.ydtech.modules.admin.model.SysDict;
- import com.ydtech.modules.admin.service.SysDictService;
- import com.ydtech.modules.ins.utils.ExcelStyleUtil;
- import com.ydtech.modules.inv.dao.InvInvoiceInfoMapper;
- import com.ydtech.modules.inv.model.InvCompany;
- import com.ydtech.modules.inv.model.InvInvoiceInfo;
- import com.ydtech.modules.inv.model.InvInvoiceInfoInOut;
- import com.ydtech.modules.inv.model.dto.InvInvoiceInfoDto;
- import com.ydtech.modules.inv.service.InvCompanyService;
- import com.ydtech.modules.inv.service.InvInvoiceInfoInOutService;
- import com.ydtech.modules.inv.service.InvInvoiceInfoService;
- import com.ydtech.utils.StringUtils;
- import com.ydtech.utils.excel.ExcelEasypoiUtils;
- import com.ydtech.utils.excel.ExcelUtils2;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.web.multipart.MultipartFile;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.net.URLEncoder;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * @author Administrator
- * @description 针对表【inv_invoice_info(发票表- 信息)】的数据库操作Service实现
- * @createDate 2023-05-15 14:22:55
- */
- @Service
- public class InvInvoiceInfoServiceImpl extends ServiceImpl<InvInvoiceInfoMapper, InvInvoiceInfo>
- implements InvInvoiceInfoService {
- @Resource
- private InvCompanyService invCompanyService;
- @Resource
- private SysDictService sysDictService;
- @Resource
- private InvInvoiceInfoInOutService invInvoiceInfoInOutService;
- @Override
- public boolean approval(ApprovalStatusEnum approvalStatusEnum, List<String> ids) {
- LambdaUpdateWrapper<InvInvoiceInfo> luw = new LambdaUpdateWrapper();
- luw.set(InvInvoiceInfo::getApprovalStatus, approvalStatusEnum.getCode());
- luw.in(InvInvoiceInfo::getId, ids);
- return update(luw);
- }
- @Override
- public HttpResult importData(MultipartFile file) {
- List<InvInvoiceInfo> list = null;
- try {
- list = ExcelEasypoiUtils.importExcel(file, InvInvoiceInfo.class, null, null, null);
- } catch (IOException e) {
- return HttpResult.error("导入失败!" + e.getMessage());
- }
- list.remove(null);
- List<InvCompany> iCompanyList = invCompanyService.list();
- List<SysDict> subjectsList = sysDictService.findByLable("subjects");
- List<InvInvoiceInfo> finalList = new ArrayList<>();
- list.stream().forEach(a -> {
- if (StringUtils.isNullOrEmpty(a.getInvCompanyName())) return;
- a.setApprovalStatus(ApprovalStatusEnum.AS0.getCode());
- //获取ID
- if (StringUtils.isNotEmpty(a.getInvCompanyName())) {
- // iCompanyList.stream().filter(ic -> ic.getEnterpriseName().equals(a.getInvCompanyName())).collect(Collectors.toList());
- String eNameId = iCompanyList
- .stream()
- .filter(ic -> ic.getEnterpriseName().equals(a.getInvCompanyName()))
- // .sorted(Comparator.comparing(B::getSorted))
- .map(b -> b.getId())
- .collect(Collectors.joining(StrUtil.CRLF));
- // InvCompany ic = invCompanyService.gainIdByEnterpriseName(a.getInvCompanyName());
- if (StringUtils.isNotEmpty(eNameId)) {
- a.setInvCompanyId(eNameId);
- } else {
- return;
- }
- }
- if (null != a && StringUtils.isNotEmpty(a.getSubjects())) {
- String subjectsId = subjectsList
- .stream()
- .filter(sub -> sub.getLabel().equals(a.getSubjects()))
- // .sorted(Comparator.comparing(B::getSorted))
- .map(b -> b.getValue())
- .collect(Collectors.joining(StrUtil.CRLF));
- // List<SysDict> subjectsList = sysDictService.findByLable("subjects");
- if (StringUtils.isNotEmpty(subjectsId)) {
- a.setSubjectsId(subjectsId);
- } else {
- return;
- }
- }
- finalList.add(a);
- });
- if (finalList.size() > 0) {
- saveBatch(finalList);
- return HttpResult.ok("导入匹配[开票公司]的数据条数:" + finalList.size());
- } else {
- return HttpResult.error("导入匹配[开票公司]的数据条数:0");
- }
- }
- @Override
- public HttpResult exportData(List<String> ids, HttpServletRequest request, HttpServletResponse response) {
- List<InvInvoiceInfo> iiiList = listByIds(ids);
- // 导出
- ExportParams exportParams = new ExportParams(null, "Sheet1", ExcelType.HSSF);
- // ExportParams exportParams = new ExportParams();
- // 设置
- exportParams.setStyle(ExcelStyleUtil.class);
- try {
- String fileName = URLEncoder.encode("发票信息表", "UTF-8");
- ExcelUtils2.exportExcel(iiiList, InvInvoiceInfo.class, fileName, exportParams, request, response);
- // ExcelUtils2.exportExcel(iiiList, InvInvoiceInfo.class, "发票信息表", exportParams, request, response);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- return HttpResult.ok("导出成功");
- }
- @Override
- public boolean saveInvoice(InvInvoiceInfoDto dto) {
- InvInvoiceInfo invInvoiceInfo = dto.getInvoiceInfo();
- invInvoiceInfo.setApprovalStatus(ApprovalStatusEnum.AS1.getCode());
- if(StringUtils.isNotEmpty(invInvoiceInfo.getId())){
- List<InvInvoiceInfoInOut> invoiceInfoInOutList = dto.getInvoiceInfoInOutList();
- if(null !=invoiceInfoInOutList && invoiceInfoInOutList.size()>0){
- invInvoiceInfoInOutService.removeById(invInvoiceInfo.getId());
- }
- invInvoiceInfoInOutService.saveBatch(invoiceInfoInOutList);
- }
- return saveOrUpdate(invInvoiceInfo);
- }
- }
|