浏览代码

Merge remote-tracking branch 'origin/dev' into pre

dzx 1 年之前
父节点
当前提交
7f08017a53

+ 2 - 4
src/main/java/com/xjrsoft/module/textbook/controller/WfTextbookSubscriptionController.java

@@ -6,7 +6,6 @@ import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.support.ExcelTypeEnum;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
-import com.xjrsoft.common.model.result.R;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
@@ -19,7 +18,6 @@ import com.xjrsoft.module.base.service.IBaseClassService;
 import com.xjrsoft.module.student.entity.BaseClassMajorSet;
 import com.xjrsoft.module.teacher.entity.XjrUser;
 import com.xjrsoft.module.textbook.dto.*;
-import com.xjrsoft.module.textbook.entity.Textbook;
 import com.xjrsoft.module.textbook.entity.WfTextbookSubscription;
 import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItem;
 import com.xjrsoft.module.textbook.service.IWfTextbookSubscriptionService;
@@ -262,8 +260,8 @@ public class WfTextbookSubscriptionController {
 
     @PostMapping("/instockroom-excel-import")
     @ApiOperation(value = "教材征订入库数量导入")
-    public R excelImport(@RequestParam("file") MultipartFile file,  @RequestParam(value = "wfTextbookSubscriptionId") Long wfTextbookSubscriptionId) throws IOException {
+    public RT<String> excelImport(@RequestParam("file") MultipartFile file,  @RequestParam(value = "wfTextbookSubscriptionId") Long wfTextbookSubscriptionId) throws IOException {
         InputStream inputStream = file.getInputStream();
-        return R.ok(wfTextbookSubscriptionService.excelImport(inputStream, wfTextbookSubscriptionId));
+        return RT.ok(wfTextbookSubscriptionService.excelImport(inputStream, wfTextbookSubscriptionId));
     }
 }

+ 1 - 1
src/main/java/com/xjrsoft/module/textbook/service/IWfTextbookSubscriptionService.java

@@ -56,5 +56,5 @@ public interface IWfTextbookSubscriptionService extends MPJBaseService<WfTextboo
     Boolean instockroom(List<TextbookInstockroomDto> dtos);
 
 
-    Boolean excelImport(InputStream inputStream, Long wfTextbookSubscriptionId);
+    String excelImport(InputStream inputStream, Long wfTextbookSubscriptionId);
 }

+ 23 - 10
src/main/java/com/xjrsoft/module/textbook/service/impl/WfTextbookSubscriptionServiceImpl.java

@@ -9,14 +9,11 @@ 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.enums.TextbookTypeEnum;
 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.student.entity.BaseClassMajorSet;
-import com.xjrsoft.module.student.vo.BaseClassMajorSetPageVo;
 import com.xjrsoft.module.system.entity.DictionaryDetail;
 import com.xjrsoft.module.textbook.dto.*;
 import com.xjrsoft.module.textbook.entity.*;
@@ -37,6 +34,8 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.io.InputStream;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
 /**
@@ -345,11 +344,13 @@ public class WfTextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<WfText
         if (dtos.isEmpty()) {
             return false;
         }
-        return saveData(dtos);
+        Map<String, Object> result = saveData(dtos);
+        return result != null && (int) result.get("successNum") > 0;
     }
 
     @Override
-    public Boolean excelImport(InputStream inputStream, Long wfTextbookSubscriptionId) {
+    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("导入数据为空");
@@ -363,13 +364,19 @@ public class WfTextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<WfText
                     setInNum(item.getInNum());
                 }});
             }
-            saveData(textbookInstockroomDtoList);
+            atomicMap.set(saveData(textbookInstockroomDtoList));
         })).sheet().doRead();
 
-        return true;
+        if(atomicMap.get() != null){
+            return "计划入库教材" + atomicMap.get().get("allNum") + "样,成功入库" + atomicMap.get().get("successNum") + "样,成功入库" + atomicMap.get().get("instockroomNum") + "本";
+        }
+        return "计划入库教材0样,成功入库0样,成功入库0本";
     }
 
-    private boolean saveData(List<TextbookInstockroomDto> dtos) {
+    private Map<String, Object> saveData(List<TextbookInstockroomDto> dtos) {
+        Map<String, Object> result = new HashMap<>();
+        int successNum = 0;
+        int instockroomNum = 0;
         //获取需要修改的list
         MPJLambdaWrapper<WfTextbookSubscriptionItem> queryWrapper = new MPJLambdaWrapper<>();
         queryWrapper
@@ -383,7 +390,7 @@ public class WfTextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<WfText
         List<WfTextbookSubscriptionItem> wfTextbookSubscriptionItemList = wfTextbookSubscriptionWfTextbookSubscriptionItemMapper.selectList(queryWrapper);
 
         if (wfTextbookSubscriptionItemList.isEmpty()) {
-            return false;
+            return null;
         }
 
         Map<Long, WfTextbookSubscriptionItem> itemByIdMap = wfTextbookSubscriptionItemList
@@ -427,7 +434,13 @@ public class WfTextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<WfText
                 setWarehouseNumber(dto.getInNum());
                 setSource("wm_manual");
             }});
+            successNum++;
+            instockroomNum += dto.getInNum();
         }
-        return true;
+        result.put("allNum", dtos.size());
+        result.put("successNum", successNum);
+        result.put("instockroomNum", instockroomNum);
+
+        return result;
     }
 }