|
@@ -3,20 +3,29 @@ package com.xjrsoft.module.textbook.service.impl;
|
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import com.alibaba.excel.EasyExcel;
|
|
|
-import com.alibaba.excel.read.listener.PageReadListener;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.github.yulichang.base.MPJBaseServiceImpl;
|
|
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
import com.xjrsoft.common.enums.DeleteMark;
|
|
|
-import com.xjrsoft.common.exception.MyException;
|
|
|
import com.xjrsoft.common.utils.VoToColumnUtil;
|
|
|
import com.xjrsoft.module.base.entity.BaseClass;
|
|
|
import com.xjrsoft.module.base.entity.BaseCourseSubject;
|
|
|
import com.xjrsoft.module.base.mapper.BaseClassMapper;
|
|
|
import com.xjrsoft.module.system.entity.DictionaryDetail;
|
|
|
-import com.xjrsoft.module.textbook.dto.*;
|
|
|
-import com.xjrsoft.module.textbook.entity.*;
|
|
|
+import com.xjrsoft.module.textbook.dto.AddTextbookWarehouseRecordDto;
|
|
|
+import com.xjrsoft.module.textbook.dto.TextbookInstockroomDto;
|
|
|
+import com.xjrsoft.module.textbook.dto.TextbookInstockroomImportDto;
|
|
|
+import com.xjrsoft.module.textbook.dto.TextbookInstockroomListDto;
|
|
|
+import com.xjrsoft.module.textbook.dto.TextbookSubscriptionExportQueryListDto;
|
|
|
+import com.xjrsoft.module.textbook.dto.UpdateWfTextbookSubscriptionDto;
|
|
|
+import com.xjrsoft.module.textbook.dto.UpdateWfTextbookSubscriptionItemDto;
|
|
|
+import com.xjrsoft.module.textbook.dto.WfTextbookSubscriptionDto;
|
|
|
+import com.xjrsoft.module.textbook.entity.Textbook;
|
|
|
+import com.xjrsoft.module.textbook.entity.TextbookSubscriptionRecord;
|
|
|
+import com.xjrsoft.module.textbook.entity.WfTextbookSubscription;
|
|
|
+import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItem;
|
|
|
+import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItemHistory;
|
|
|
import com.xjrsoft.module.textbook.mapper.TextbookSubscriptionRecordMapper;
|
|
|
import com.xjrsoft.module.textbook.mapper.WfTextbookSubscriptionItemHistoryMapper;
|
|
|
import com.xjrsoft.module.textbook.mapper.WfTextbookSubscriptionItemMapper;
|
|
@@ -33,9 +42,16 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.io.InputStream;
|
|
|
-import java.util.*;
|
|
|
-import java.util.concurrent.atomic.AtomicInteger;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
+import java.util.regex.Matcher;
|
|
|
+import java.util.regex.Pattern;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -355,22 +371,32 @@ public class WfTextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<WfText
|
|
|
@Override
|
|
|
public String excelImport(InputStream inputStream, Long wfTextbookSubscriptionId) {
|
|
|
AtomicReference<Map<String, Object>> atomicMap = new AtomicReference<>(new HashMap<>());
|
|
|
- EasyExcel.read(inputStream, TextbookInstockroomImportDto.class, new PageReadListener<TextbookInstockroomImportDto>(dataList -> {
|
|
|
- if (dataList.isEmpty()) {
|
|
|
- throw new MyException("导入数据为空");
|
|
|
+ List<Map<Integer, Object>> excalDataList = EasyExcel.read(inputStream).sheet().headRowNumber(1).doReadSync();
|
|
|
+ String regex = "\\d+";
|
|
|
+ Pattern pattern = Pattern.compile(regex);
|
|
|
+ List<TextbookInstockroomImportDto> dataList = new ArrayList<>();
|
|
|
+ for (Map<Integer, Object> integerObjectMap : excalDataList) {
|
|
|
+ Matcher matcher = pattern.matcher(integerObjectMap.get(11).toString());
|
|
|
+ int inNum = 0;
|
|
|
+ if(matcher.find()){
|
|
|
+ inNum = Integer.parseInt(integerObjectMap.get(11).toString());
|
|
|
}
|
|
|
+ TextbookInstockroomImportDto importDto = new TextbookInstockroomImportDto();
|
|
|
+ importDto.setInNum(inNum);
|
|
|
+ importDto.setIssn(integerObjectMap.get(2).toString());
|
|
|
+ dataList.add(importDto);
|
|
|
+ }
|
|
|
|
|
|
- List<TextbookInstockroomDto> textbookInstockroomDtoList = new ArrayList<>();
|
|
|
- for (TextbookInstockroomImportDto item : dataList){
|
|
|
- textbookInstockroomDtoList.add(new TextbookInstockroomDto(){{
|
|
|
- setWfTextbookSubscriptionId(wfTextbookSubscriptionId);
|
|
|
- setIssn(item.getIssn());
|
|
|
- setInNum(item.getInNum());
|
|
|
- }});
|
|
|
- }
|
|
|
- atomicMap.set(saveData(textbookInstockroomDtoList));
|
|
|
- })).sheet().doRead();
|
|
|
|
|
|
+ List<TextbookInstockroomDto> textbookInstockroomDtoList = new ArrayList<>();
|
|
|
+ for (TextbookInstockroomImportDto item : dataList){
|
|
|
+ textbookInstockroomDtoList.add(new TextbookInstockroomDto(){{
|
|
|
+ setWfTextbookSubscriptionId(wfTextbookSubscriptionId);
|
|
|
+ setIssn(item.getIssn());
|
|
|
+ setInNum(item.getInNum());
|
|
|
+ }});
|
|
|
+ }
|
|
|
+ atomicMap.set(saveData(textbookInstockroomDtoList));
|
|
|
if(atomicMap.get() != null){
|
|
|
return "计划入库教材" + atomicMap.get().get("allNum") + "样,成功入库" + atomicMap.get().get("successNum") + "样,成功入库" + atomicMap.get().get("instockroomNum") + "本";
|
|
|
}
|