智慧保安后台管理-外网
src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springblade.common.utils.arg;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
@@ -37,6 +38,7 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import static com.bstek.ureport.expression.model.condition.Join.and;
@@ -245,6 +247,10 @@
   @Override
   public void importExamScore(List<ExamScoreExcel> examScoreExcelList, Boolean isCovered) {
      if (examScoreExcelList.size()>0){
         List<Object> errorList = new ArrayList<>();
         //导入状态,默认为true ,如果有一个出现问题则为 false
         AtomicBoolean status = new AtomicBoolean(true);
         //遍历
         examScoreExcelList.forEach(examScoreExcel -> {
            if (null!=examScoreExcel.getLearnGrade() && null!=examScoreExcel.getIdCardNo() && examScoreExcel.getIdCardNo()!=""){
               //使用考试名称匹配考试信息
@@ -270,6 +276,8 @@
                     examScore.setQualified(0);
                     //正式考试通过生成保安证编号
//                     if (examPaper.getExamType()==1) {
                     //如果已有保安证编号,不更新用户信息
                     if (null==user.getSecuritynumber() || user.getSecuritynumber()=="") {
                        //去生成保安证编号
                        String pre = SecurityPaperUtil.getSecurityPaper();
                        //查询当前年份已有的保安证编号
@@ -288,32 +296,41 @@
                        user.setPaperTime(new Date());
                        //修改为持证保安
                        user.setHold("1");
                        //分配保安角色
//                        Role role = new Role();
//                        role.setRoleAlias("保安");
//                        Role oneRole = roleService.getOne(Condition.getQueryWrapper(role));
//                        user.setRoleId(oneRole.getId().toString());
                        //更新保安数据
                        userService.updateById(user);
                        String s1 =
                           "update blade_user set hold = " + "'" +  user.getHold() + "'" +
                           "update blade_user set hold = " + "'" + user.getHold() + "'" +
                              ",securitynumber = " + "'" + user.getSecuritynumber() + "'" +
                              ",paper_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd").format(user.getPaperTime()) + "'" +
                              " " +"where id = " + "'" + user.getId() + "'";
                              " " + "where id = " + "'" + user.getId() + "'";
                        FtpUtil.sqlFileUpload(s1);
                     }
                     //分配保安角色
//                        Role role = new Role();
//                        role.setRoleAlias("保安");
//                        Role oneRole = roleService.getOne(Condition.getQueryWrapper(role));
//                        user.setRoleId(oneRole.getId().toString());
//                     }
                  } else {
                     //不合格
                     examScore.setQualified(1);
                  }
                  //总成绩
                  if (user.getAge()<=50) {
                     examScore.setAllGrade(Math.round((examScore.getTheoryGrade()+examScoreExcel.getLearnGrade())/2));
                  if (user.getAge() <= 50) {
                     if (null!=examScore.getTheoryGrade()) {
                        examScore.setAllGrade(Math.round((examScore.getTheoryGrade() + examScoreExcel.getLearnGrade()) / 2));
                     }else {
                        examScore.setAllGrade(Math.round(examScoreExcel.getLearnGrade() / 2));
                     }
                  }
                  if (user.getAge()>50) {
                     examScore.setAllGrade(Integer.parseInt(String.valueOf(Math.round(examScore.getTheoryGrade()*0.5)))
                        + Integer.parseInt(String.valueOf(Math.round(examScoreExcel.getLearnGrade()*0.5))));
                  if (user.getAge() > 50) {
                     if (null!=examScore.getTheoryGrade()) {
                        examScore.setAllGrade(Integer.parseInt(String.valueOf(Math.round(examScore.getTheoryGrade() * 0.5)))
                           + Integer.parseInt(String.valueOf(Math.round(examScoreExcel.getLearnGrade() * 0.5))));
                     }else {
                        examScore.setAllGrade(Math.round(examScoreExcel.getLearnGrade() / 2));
                     }
                  }
                  //内网同步
@@ -321,13 +338,21 @@
                     "update exam_score set learn_grade = " + "'" + examScore.getLearnGrade() + "'" +
                        ",all_grade = " + "'" + examScore.getAllGrade() + "'" +
                        ",qualified = " + "'" + examScore.getQualified() + "'" +
                        " " +"where id = " + "'" + examScore.getId() + "'";
                        " " + "where id = " + "'" + examScore.getId() + "'";
                  FtpUtil.sqlFileUpload(s1);
                  //更新成绩数据
                  baseMapper.updateById(examScore);
               }else {
                  errorList.add(examScoreExcel.getIdCardNo());
                  status.set(false);
               }
            }
         });
         //如果所有数据导入有一个异常
         if (!status.get()){
            String errorAccount = StringUtils.join(errorList, "\\\n");
            throw new ServiceException("用户:["+errorAccount+"]实操成绩导入失败!账号与准考证号不匹配!");
         }
      }
   }