From 94b5684557d4987add639a94d1ad41c32b5d00c0 Mon Sep 17 00:00:00 2001 From: ZQN <364596817@qq.com> Date: 星期二, 03 九月 2024 10:32:29 +0800 Subject: [PATCH] 审批人修改 --- project-enforce/src/main/java/com/project/enforce/service/impl/EnforceEvaluateServiceImpl.java | 77 ++++++++++++++++++++++++++++++-------- 1 files changed, 60 insertions(+), 17 deletions(-) diff --git a/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceEvaluateServiceImpl.java b/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceEvaluateServiceImpl.java index 6a24155..56feac4 100644 --- a/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceEvaluateServiceImpl.java +++ b/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceEvaluateServiceImpl.java @@ -1,19 +1,23 @@ package com.project.enforce.service.impl; +import cn.hutool.core.convert.Convert; import com.project.common.exception.base.BaseException; +import com.project.common.utils.JsonUtils; +import com.project.common.utils.NumberUtils; import com.project.common.utils.StringUtils; import com.project.enforce.domain.EnforceEvaluateAnswer; +import com.project.enforce.domain.EnforceEvaluateLog; import com.project.enforce.domain.EnforceEvaluateQuestion; +import com.project.enforce.domain.EnforceOrder; import com.project.enforce.domain.bo.editBo.EnforceEvaluateBo; import com.project.enforce.domain.vo.EnforceEvaluateVo; -import com.project.enforce.service.IEnforceEvaluateAnswerService; -import com.project.enforce.service.IEnforceEvaluateQuestionService; -import com.project.enforce.service.IEnforceEvaluateService; +import com.project.enforce.service.*; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.List; /** @@ -30,17 +34,20 @@ private final IEnforceEvaluateQuestionService questionService; private final IEnforceEvaluateAnswerService answerService; + private final IEnforceOrderService orderService; + private final IEnforceEvaluateLogService evaluateLogService; @Override//淇濆瓨 @Transactional public Boolean save(EnforceEvaluateBo bo) { + questionService.clearQuestionAndAnswer(); List<EnforceEvaluateQuestion> questionList = bo.getQuestionList(); if (StringUtils.isEmpty(questionList)){ - throw new BaseException("棰樼洰涓嶅彲涓虹┖锛�"); + throw new BaseException("璇勪环椤逛笉鍙负绌猴紒"); } - for (EnforceEvaluateQuestion question : bo.getQuestionList()) { + for (EnforceEvaluateQuestion question : questionList) { if (question.getQuestionType()==1 && StringUtils.isEmpty(question.getAnswerList())){ throw new BaseException("閫夋嫨绫诲瀷绛旀涓嶅彲涓虹┖锛�"); } @@ -48,16 +55,8 @@ int count = questionService.count(questionService.lq() .eq(EnforceEvaluateQuestion::getQuestionName, question.getQuestionId())); if (count>0) { - throw new BaseException(StringUtils.format("{}锛岄鐩噸澶嶏紝璇烽噸璇曪紒", question.getQuestionName())); + throw new BaseException(StringUtils.format("{}锛岄噸澶嶏紝璇烽噸璇曪紒", question.getQuestionName())); } - if (StringUtils.isNotEmpty(question.getAnswerList())){ - EnforceEvaluateQuestion one = questionService.getOne(questionService.lq().eq(EnforceEvaluateQuestion::getQuestionName, question.getQuestionName())); - question.getAnswerList().forEach(enforceEvaluateAnswer -> { - enforceEvaluateAnswer.setQuestionId(one.getQuestionId()); - enforceEvaluateAnswer.setQuestionName(one.getQuestionName()); - }); - } - } else { int count = questionService.count(questionService.lq(). eq(EnforceEvaluateQuestion::getQuestionName, question.getQuestionId()) @@ -68,14 +67,18 @@ } questionService.saveOrUpdate(question); if (StringUtils.isNotEmpty(question.getAnswerList())){ + EnforceEvaluateQuestion one = questionService.getOne(questionService.lq().eq(EnforceEvaluateQuestion::getQuestionName, question.getQuestionName())); + question.getAnswerList().forEach(enforceEvaluateAnswer -> { + enforceEvaluateAnswer.setQuestionId(one.getQuestionId()); + enforceEvaluateAnswer.setQuestionName(one.getQuestionName()); + }); answerService.saveOrUpdateBatch(question.getAnswerList()); } } - - return null; + return true; } - @Override + @Override//璇勪环璁剧疆璇︽儏 public EnforceEvaluateVo getInfo() { EnforceEvaluateVo vo = new EnforceEvaluateVo(); @@ -89,4 +92,44 @@ vo.setQuestionList(questionList); return vo; } + + @Override + @Transactional + public Boolean saveOrder(EnforceEvaluateBo bo) + { + if (bo.getOrderId()==null){ + throw new BaseException("璇烽�夋嫨璇勪环鎵ф硶鍗曪紒"); + } + EnforceOrder order = orderService.getById(bo.getOrderId()); + if (order.getOrderStatus()==2){ + throw new BaseException("璇ユ墽娉曞崟杩樻湭鎵ф硶锛屼笉鍙瘎浠凤紒"); + } + List<EnforceEvaluateQuestion> questionList = bo.getQuestionList(); + if (StringUtils.isEmpty(questionList)){ + throw new BaseException("璇勪环椤逛笉鍙负绌猴紒"); + } + int count = evaluateLogService.count(EnforceEvaluateLog::getOrderId, bo.getOrderId()); + if (count>0) { + throw new BaseException("璇ユ墽娉曞崟宸茶瘎浠凤紒"); + } + BigDecimal totalScore = BigDecimal.ZERO; + for (EnforceEvaluateQuestion question : questionList) { + totalScore = NumberUtils.add(totalScore, question.getGetScore()); + } + + + EnforceEvaluateLog evaluateLog = Convert.convert(EnforceEvaluateLog.class, order); + evaluateLog.setQuestionRemark(bo.getQuestionRemark()); + evaluateLog.setTotalScore(NumberUtils.divToBigDecSca2(totalScore,1)); + evaluateLog.setQuestionStatic(JsonUtils.objectToJson(bo.getQuestionList())); + + evaluateLogService.saveOrUpdate(evaluateLog); + return orderService.update(orderService.lu() + .set(EnforceOrder::getIsEva,1) + .set(EnforceOrder::getTotalScore, totalScore) + .eq(EnforceOrder::getOrderId, bo.getOrderId()) + ); + } + + } -- Gitblit v1.9.1