/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ 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; /** * 答题记录表 服务实现类 * * @author BladeX * @since 2024-01-17 */ @Service public class AnswerRecordServiceImpl extends ServiceImpl implements IAnswerRecordService { @Override public IPage selectAnswerRecordPage(IPage page, AnswerRecordVO answerRecord) { return page.setRecords(baseMapper.selectAnswerRecordPage(page, answerRecord)); } /** * 查询答题记录表 * * @param id 答题记录表ID * @return 答题记录表 */ @Override public AnswerRecordDTO selectAnswerRecordById(Long id) { return this.baseMapper.selectAnswerRecordById(id); } /** * 查询答题记录表列表 * * @param answerRecordDTO 答题记录表 * @return 答题记录表集合 */ @Override public List selectAnswerRecordList(AnswerRecordDTO answerRecordDTO) { return this.baseMapper.selectAnswerRecordList(answerRecordDTO); } @Override public Boolean saveAnswer(List subjectChoicesVO) { BigDecimal bigDecimal = BigDecimal.valueOf(0); List objects = new ArrayList<>(); for (SubjectChoicesVO choicesVO : subjectChoicesVO) { List subjectOptionList = choicesVO.getSubjectOptionList(); if (choicesVO.getChoicesType().intValue() == 3) { bigDecimal = bigDecimal.add(choicesVO.getScore()); } for (SubjectOptionVO subjectOptionVO : subjectOptionList) { boolean update = remove(Wrappers.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.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.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); } }