jiangping
2024-01-30 a9ca0823ab8f33ca85abebcf6ec4a8da235adb49
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -1,5 +1,8 @@
package com.doumee.service.business.impl;
import com.doumee.core.annotation.excel.ExcelImporter;
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;
@@ -7,7 +10,9 @@
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.dto.MemberImport;
import com.doumee.dao.business.dto.MemberQueryDTO;
import com.doumee.dao.business.dto.WorktypeImport;
import com.doumee.dao.business.join.MemberJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.service.business.MemberService;
@@ -21,7 +26,9 @@
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -47,6 +54,7 @@
        memberMapper.insert(member);
        return member.getId();
    }
    @Override
    public void deleteById(Integer id) {
@@ -230,4 +238,51 @@
    @Override
    public List<MemberImport> importBatch(MultipartFile file){
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if(!loginUserInfo.getType().equals(Constants.ONE)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"非企业人员无法进行该操作");
        }
        List<Member> list =  memberJoinMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
                .selectAll(Member.class)
                .selectAs(DispatchUnit::getName,Member::getDuName)
                .selectAs(Worktype::getName,Member::getWorkTypeName)
                .leftJoin(DispatchUnit.class,DispatchUnit::getId,Member::getDuId)
                .leftJoin(Worktype.class,Worktype::getId,Member::getWorktypeId)
                .eq(Member::getCompanyId,loginUserInfo.getCompanyId())
                .eq(Member::getIsdeleted,Constants.ZERO)
        );
        ExcelImporter ie = null;
        List<MemberImport> dataList =null;
        try {
            ie = new ExcelImporter(file,0,0);
            dataList = ie.getDataList(MemberImport.class,null);
        }  catch (Exception e) {
            e.printStackTrace();
        }
        if(dataList == null || dataList.size() ==0){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,录入数据为空!");
        }
        for(MemberImport model : dataList){
            if(CollectionUtils.isNotEmpty(list)){
                Member member = list.stream().filter(m->m.getIdcardNo().equals(model.getIdCard())).findAny().get();
                if(!Objects.isNull(member)){
//                    model.setWorkTypeId(member.getWorktypeId());
//                    model.setWorkTypeName(member.getWorkTypeName());
                    model.setIdCard(member.getIdcardNo());
//                    model.setDuId(member.getDuId());
//                    model.setDuName(member.getDuName());
                    model.setSex(member.getSex());
                }else{
                    model.setSex(Constants.getSexByIdCard(model.getIdCard()));
                }
            }else{
                model.setSex(Constants.getSexByIdCard(model.getIdCard()));
            }
        }
        return dataList;
    }
}