From 77eaae1a96b2c6a0a23bafbacf39806acd1980b6 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 29 一月 2026 09:29:06 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
server/services/src/main/java/com/doumee/service/business/impl/ImportRecordServiceImpl.java | 135 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 135 insertions(+), 0 deletions(-)
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/ImportRecordServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/ImportRecordServiceImpl.java
index d3ca1de..074a1db 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/ImportRecordServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/ImportRecordServiceImpl.java
@@ -1,20 +1,41 @@
package com.doumee.service.business.impl;
+import com.doumee.core.annotation.excel.ExcelImporter;
+import com.doumee.core.constants.Constants;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.dao.business.dto.CasesImport;
+import com.doumee.dao.business.dto.MemberImport;
import com.doumee.dao.business.model.ImportRecord;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.ImportRecordMapper;
+import com.doumee.dao.business.model.Member;
import com.doumee.service.business.ImportRecordService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.usermodel.CellType;
+import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import org.springframework.web.multipart.MultipartFile;
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
+import java.util.concurrent.TimeUnit;
/**
* 鍒嗙被淇℃伅琛⊿ervice瀹炵幇
@@ -26,9 +47,21 @@
@Autowired
private ImportRecordMapper importRecordMapper;
+ @Resource
+ private RedisTemplate<String, Object> redisTemplate;
@Override
public Integer create(ImportRecord importRecord) {
+ if(StringUtils.isBlank(importRecord.getImgurl())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ importRecord.setDeleted(Constants.ZERO);
+ importRecord.setStatus(Constants.ZERO);
+ importRecord.setCreateTime(new Date());
+ importRecord.setCreateUser(loginUserInfo.getId());
+ importRecord.setUpdateTime(new Date());
+ importRecord.setUpdateUser(loginUserInfo.getId());
importRecordMapper.insert(importRecord);
return importRecord.getId();
}
@@ -134,4 +167,106 @@
QueryWrapper<ImportRecord> wrapper = new QueryWrapper<>(importRecord);
return importRecordMapper.selectCount(wrapper);
}
+ @Override
+ public ImportRecord importBatch(MultipartFile file,int type ){
+ Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.IMPORTING_RECORD);
+ if(importing!=null && importing){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝宸插瓨鍦ㄥ鍏ヤ换鍔℃鍦ㄦ墽琛屼腑锛岃绋嶅悗鍐嶈瘯锛�");
+ }
+ redisTemplate.opsForValue().set(Constants.RedisKeys.IMPORTING_RECORD,true,30, TimeUnit.MINUTES);
+ try {
+ ImportRecord model = new ImportRecord();
+ LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ model.setDeleted(Constants.ZERO);
+ model.setStatus(Constants.ONE);//寮傛澶勭悊涓�
+ model.setCreateTime(new Date());
+ model.setCreateUser(loginUserInfo.getId());
+ model.setUpdateTime(model.getCreateTime());
+ model.setUpdateUser(loginUserInfo.getId());
+ model.setType(type);
+ model.setTitle((type==1?"妗堜緥淇℃伅鎵归噺瀵煎叆":"鑰佸笀淇℃伅鎵归噺瀵煎叆")+ DateUtil.getPlusTime2(model.getCreateTime()));
+ model.setTotalNum(0);
+ ExcelImporter ie= new ExcelImporter(file,0,0, CellType.STRING); // 纭繚鍗曞厓鏍肩被鍨嬩负瀛楃涓�);
+ if(type == 1) {
+ model.setCaseList(ie.getDataList(CasesImport.class,null));
+ if(model.getCaseList() ==null || model.getCaseList().size()==0){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵煎叆鏂囦欢妗堜緥淇℃伅鍐呭涓虹┖锛�");
+ }
+ model.setTotalNum(model.getCaseList().size());
+ }else{
+ model.setMemberList(ie.getDataList(MemberImport.class,null));
+ if(model.getMemberList() ==null || model.getMemberList().size()==0){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵煎叆鏂囦欢鑰佸笀淇℃伅鍐呭涓虹┖锛�");
+ }
+ model.setTotalNum(model.getMemberList().size());
+ }
+// model.setPictureDataList(ie);
+ importRecordMapper.insert(model);
+ return model;
+ }catch (Exception e){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏂囦欢淇℃伅璇诲彇澶辫触锛岃妫�鏌ユ枃浠跺唴瀹瑰悗閲嶈瘯锛�");
+ }finally {
+ redisTemplate.delete(Constants.RedisKeys.IMPORTING_RECORD);
+ }
+ }
+
+ /**
+ * 寮傛鎵ц鏂囦欢浠诲姟
+ * @param importRecord
+ */
+ @Override
+ @Async
+ public void dealImporTask(ImportRecord importRecord){
+ int success = 0;
+ if(Constants.equalsInteger(importRecord.getType(),0)){
+ dealUserImportBiz(importRecord);
+ }else{
+ dealCaseImportBiz(importRecord);
+ }
+ importRecord.setStatus(Constants.TWO);
+ importRecord.setUpdateTime(new Date());
+ importRecordMapper.updateById(importRecord);
+
+ }
+
+ /**
+ * 澶勭悊妗堜緥瀵煎叆浠诲姟
+ * @param importRecord
+ */
+
+ private int dealCaseImportBiz(ImportRecord importRecord) {
+ int success=0;
+ String msg ="";
+ try {
+ for(CasesImport param:importRecord.getCaseList()){
+
+ }
+ }catch (Exception e){
+
+ }
+ importRecord.setDoneNum(success);
+ importRecord.setErrorNum(importRecord.getTotalNum() - success);
+ return success;
+ }
+
+ /**
+ * 澶勭悊浜哄憳瀵煎叆璁板綍
+ * @param importRecord
+ */
+ private int dealUserImportBiz(ImportRecord importRecord) {
+ int success=0;
+ String msg = "";
+ try {
+ for(MemberImport param:importRecord.getMemberList()){
+
+ }
+ }catch (Exception e){
+
+ }
+ importRecord.setDoneNum(success);
+ importRecord.setErrorNum(importRecord.getTotalNum() - success);
+ importRecord.setDetail(msg);
+
+ return success;
+ }
}
--
Gitblit v1.9.3