linwei
2024-01-19 494aeb58eb885b40ab2fdb083aaa79007bb79ae2
src/main/java/org/springblade/modules/answerRecord/service/impl/AnswerRecordServiceImpl.java
@@ -17,14 +17,22 @@
package org.springblade.modules.answerRecord.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.common.utils.SpringUtils;
import org.springblade.modules.answerRecord.dto.AnswerRecordDTO;
import org.springblade.modules.answerRecord.entity.AnswerRecordEntity;
import org.springblade.modules.answerRecord.mapper.AnswerRecordMapper;
import org.springblade.modules.answerRecord.service.IAnswerRecordService;
import org.springblade.modules.answerRecord.vo.AnswerRecordVO;
import org.springblade.modules.property.entity.PropertyCompanyEntity;
import org.springblade.modules.property.service.IPropertyCompanyService;
import org.springblade.modules.subjectChoices.vo.SubjectChoicesVO;
import org.springblade.modules.subjectOption.vo.SubjectOptionVO;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
@@ -63,5 +71,73 @@
      return this.baseMapper.selectAnswerRecordList(answerRecordDTO);
   }
   @Override
   public Boolean saveAnswer(List<SubjectChoicesVO> subjectChoicesVO) {
      BigDecimal bigDecimal = BigDecimal.valueOf(0);
      List<AnswerRecordEntity> objects = new ArrayList<>();
      for (SubjectChoicesVO choicesVO : subjectChoicesVO) {
         List<SubjectOptionVO> subjectOptionList = choicesVO.getSubjectOptionList();
         if (choicesVO.getChoicesType().intValue() == 3) {
            bigDecimal = bigDecimal.add(choicesVO.getScore());
         }
         for (SubjectOptionVO subjectOptionVO : subjectOptionList) {
            boolean update = remove(Wrappers.<AnswerRecordEntity>lambdaQuery()
               .eq(AnswerRecordEntity::getPropertyId, choicesVO.getPropertyId())
               .eq(AnswerRecordEntity::getSubjectChoicesId, choicesVO.getId()));
            if (subjectOptionVO.getIds() != null) {
               AnswerRecordDTO answerRecordDTO = new AnswerRecordDTO();
               answerRecordDTO.setPropertyId(choicesVO.getPropertyId());
               answerRecordDTO.setAnswerOption(subjectOptionVO.getId().toString());
               answerRecordDTO.setSubjectChoicesId(choicesVO.getId());
               answerRecordDTO.setSubjectOptionId(subjectOptionVO.getId());
               objects.add(answerRecordDTO);
               bigDecimal = bigDecimal.add(subjectOptionVO.getScore());
            }
            if (subjectOptionVO.getNumbers() != null) {
               AnswerRecordDTO answerRecordDTO = new AnswerRecordDTO();
               answerRecordDTO.setPropertyId(choicesVO.getPropertyId());
               answerRecordDTO.setAnswerOption(subjectOptionVO.getId().toString());
               answerRecordDTO.setSubjectChoicesId(choicesVO.getId());
               answerRecordDTO.setAnswer(subjectOptionVO.getNumbers());
               answerRecordDTO.setSubjectOptionId(subjectOptionVO.getId());
               objects.add(answerRecordDTO);
               BigDecimal multiply = BigDecimal.valueOf(subjectOptionVO.getNumbers()).multiply(subjectOptionVO.getScore());
               bigDecimal = bigDecimal.subtract(multiply);
            }
         }
      }
      // 保存得分
      IPropertyCompanyService bean = SpringUtils.getBean(IPropertyCompanyService.class);
      PropertyCompanyEntity one = bean.getOne(Wrappers.<PropertyCompanyEntity>lambdaQuery().eq(PropertyCompanyEntity::getId, subjectChoicesVO.get(0).getPropertyId()));
      if (subjectChoicesVO.get(0).getSubclassName().equals("基础信息")) {
         one.setBaseInfoScore(bigDecimal);
      } else if (subjectChoicesVO.get(0).getSubclassName().equals("经营信息")) {
         one.setOperateinfoScore(bigDecimal);
      } else if (subjectChoicesVO.get(0).getSubclassName().equals("纳税信息")) {
         one.setTaxInfoScore(bigDecimal);
      } else if (subjectChoicesVO.get(0).getSubclassName().equals("党建信息")) {
         one.setPartyBuildingInfoScore(bigDecimal);
         bean.update(Wrappers.<PropertyCompanyEntity>lambdaUpdate().set(PropertyCompanyEntity::getPartyBuildingInfoScore, bigDecimal)
            .eq(PropertyCompanyEntity::getId, subjectChoicesVO.get(0).getPropertyId()));
      } else if (subjectChoicesVO.get(0).getSubclassName().equals("企业良好行为")) {
         one.setGoodCorporateScore(bigDecimal);
      } else if (subjectChoicesVO.get(0).getSubclassName().equals("项目良好行为")) {
         one.setGoodProjectScore(bigDecimal);
      } else if (subjectChoicesVO.get(0).getSubclassName().equals("违法违规行为惩戒")) {
         one.setLllegalAndIrregularScore(bigDecimal);
      }
      BigDecimal add = one.getBaseInfoScore()
         .add(one.getOperateinfoScore())
         .add(one.getOperateinfoScore())
         .add(one.getPartyBuildingInfoScore())
         .add(one.getGoodCorporateScore())
         .add(one.getGoodProjectScore())
         .add(one.getLllegalAndIrregularScore())
         .add(one.getEvaluateScore());
      one.setAllScore(add);
      bean.updateById(one);
      return saveBatch(objects);
   }
}