From 09937a8e324e1254c35cded67d28a606063404b3 Mon Sep 17 00:00:00 2001 From: hshansha Date: Sat, 5 Jul 2025 08:16:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=95=E7=A5=A8=E6=8F=90=E4=BA=A4=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-dev.yml | 61 +++++++ .../kaohe/controller/KhVoteController.java | 8 + .../kaohe/controller/KhVoteEmpController.java | 13 ++ .../com/ruoyi/kaohe/domain/KhVoteEmp.java | 93 +++++----- .../com/ruoyi/kaohe/domain/KhVoteRecard.java | 158 +++++++++-------- .../ruoyi/kaohe/domain/KhVoteRecardParam.java | 166 ++++++++++++++++++ .../kaohe/service/IKhVoteEmpService.java | 5 + .../service/impl/KhVoteEmpServiceImpl.java | 91 ++++++++++ .../mapper/kaohe/KhVoteRecardMapper.xml | 73 ++++---- 9 files changed, 517 insertions(+), 151 deletions(-) create mode 100644 ruoyi-admin/src/main/resources/application-dev.yml create mode 100644 ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhVoteRecardParam.java diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml new file mode 100644 index 0000000..8c03b68 --- /dev/null +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -0,0 +1,61 @@ +# 数据源配置 +spring: + datasource: + type: com.alibaba.druid.pool.DruidDataSource + driverClassName: com.mysql.cj.jdbc.Driver + druid: + # 主库数据源 + master: + url: jdbc:mysql://localhost:3306/kaohe?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + username: kaohe + password: YTxpN2teMKfBmGNM + # 从库数据源 + slave: + # 从数据源开关/默认关闭 + enabled: false + url: + username: + password: + # 初始连接数 + initialSize: 5 + # 最小连接池数量 + minIdle: 10 + # 最大连接池数量 + maxActive: 20 + # 配置获取连接等待超时的时间 + maxWait: 60000 + # 配置连接超时时间 + connectTimeout: 30000 + # 配置网络超时时间 + socketTimeout: 60000 + # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 + timeBetweenEvictionRunsMillis: 60000 + # 配置一个连接在池中最小生存的时间,单位是毫秒 + minEvictableIdleTimeMillis: 300000 + # 配置一个连接在池中最大生存的时间,单位是毫秒 + maxEvictableIdleTimeMillis: 900000 + # 配置检测连接是否有效 + validationQuery: SELECT 1 FROM DUAL + testWhileIdle: true + testOnBorrow: false + testOnReturn: false + webStatFilter: + enabled: true + statViewServlet: + enabled: true + # 设置白名单,不填则允许所有访问 + allow: + url-pattern: /druid/* + # 控制台管理用户名和密码 + login-username: ruoyi + login-password: 123456 + filter: + stat: + enabled: true + # 慢SQL记录 + log-slow-sql: true + slow-sql-millis: 1000 + merge-sql: true + wall: + config: + multi-statement-allow: true \ No newline at end of file diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhVoteController.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhVoteController.java index d08dffd..369b4dc 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhVoteController.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhVoteController.java @@ -1,5 +1,6 @@ package com.ruoyi.kaohe.controller; +import java.math.BigDecimal; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletResponse; @@ -128,6 +129,7 @@ public class KhVoteController extends BaseController { KhPcEmp query = new KhPcEmp(); query.setPcId(khVote.getPingceId()); List pcEmps = pcEmpService.selectKhPcEmpList(query); + BigDecimal initv= new BigDecimal("O"); for (KhPcEmp pcEmp : pcEmps) { //新增投票选项关联表 KhVoteEmp voteEmp = new KhVoteEmp(); @@ -137,6 +139,12 @@ public class KhVoteController extends BaseController { voteEmp.setVoteTitle(khVote.getVoteTitle()); voteEmp.setPercentage(khVote.getPercentage()); voteEmp.setKhitemTypeid(khVote.getKhitemTypeid()); + if(khVote.getKhitemTypeid().equals(1L)){ + voteEmp.setOptionA(initv); + voteEmp.setOptionB(initv); + voteEmp.setOptionC(initv); + voteEmp.setOptionD(initv); + } voteEmpService.insertKhVoteEmp(voteEmp); } return AjaxResult.success(); diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhVoteEmpController.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhVoteEmpController.java index 83f161d..e44b062 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhVoteEmpController.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhVoteEmpController.java @@ -2,6 +2,8 @@ package com.ruoyi.kaohe.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.kaohe.domain.KhVoteRecardParam; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -91,6 +93,17 @@ public class KhVoteEmpController extends BaseController return toAjax(khVoteEmpService.updateKhVoteEmp(khVoteEmp)); } + /** + * 进行投票——修改并计算对应的分值 + */ + @PreAuthorize("@ss.hasPermi('kaohe:vote_emp:edit')") + @Log(title = "投票选项", businessType = BusinessType.UPDATE) + @PutMapping("/voteSubmit") + public AjaxResult voteSubmit(@RequestBody KhVoteRecardParam param) + { + return khVoteEmpService.voteSubmit(param); + } + /** * 删除投票选项 */ diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhVoteEmp.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhVoteEmp.java index e41df40..011734e 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhVoteEmp.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhVoteEmp.java @@ -45,27 +45,27 @@ public class KhVoteEmp extends BaseEntity /** 优秀 */ @Excel(name = "优秀") - private Long optionA; + private BigDecimal optionA; /** 合格 */ @Excel(name = "合格") - private Long optionB; + private BigDecimal optionB; /** 基本合格 */ @Excel(name = "基本合格") - private Long optionC; + private BigDecimal optionC; /** 不合格 */ @Excel(name = "不合格") - private Long optionD; + private BigDecimal optionD; /** 投票人数 */ @Excel(name = "投票人数") - private Long voteNum; + private BigDecimal voteNum; /** 总分数 */ @Excel(name = "总分数") - private Long voteScore; + private BigDecimal voteScore; /** 平均分数 */ @Excel(name = "平均分数") @@ -77,7 +77,18 @@ public class KhVoteEmp extends BaseEntity /** 最终分数 */ @Excel(name = "最终分数") - private Long endScore; + private BigDecimal endScore; + + //仅做参数 传递本次评分分数 + private BigDecimal score; + + public BigDecimal getScore() { + return score; + } + + public void setScore(BigDecimal score) { + this.score = score; + } public void setId(Long id) { @@ -149,25 +160,7 @@ public class KhVoteEmp extends BaseEntity return content; } - public void setVoteNum(Long voteNum) - { - this.voteNum = voteNum; - } - public Long getVoteNum() - { - return voteNum; - } - - public void setVoteScore(Long voteScore) - { - this.voteScore = voteScore; - } - - public Long getVoteScore() - { - return voteScore; - } public void setAvgScore(BigDecimal avgScore) { @@ -189,48 +182,62 @@ public class KhVoteEmp extends BaseEntity return percentage; } - public void setEndScore(Long endScore) - { - this.endScore = endScore; - } - - public Long getEndScore() - { - return endScore; - } - - public Long getOptionA() { + public BigDecimal getOptionA() { return optionA; } - public void setOptionA(Long optionA) { + public void setOptionA(BigDecimal optionA) { this.optionA = optionA; } - public Long getOptionB() { + public BigDecimal getOptionB() { return optionB; } - public void setOptionB(Long optionB) { + public void setOptionB(BigDecimal optionB) { this.optionB = optionB; } - public Long getOptionC() { + public BigDecimal getOptionC() { return optionC; } - public void setOptionC(Long optionC) { + public void setOptionC(BigDecimal optionC) { this.optionC = optionC; } - public Long getOptionD() { + public BigDecimal getOptionD() { return optionD; } - public void setOptionD(Long optionD) { + public void setOptionD(BigDecimal optionD) { this.optionD = optionD; } + public BigDecimal getVoteNum() { + return voteNum; + } + + public void setVoteNum(BigDecimal voteNum) { + this.voteNum = voteNum; + } + + public BigDecimal getVoteScore() { + return voteScore; + } + + public void setVoteScore(BigDecimal voteScore) { + this.voteScore = voteScore; + } + + public BigDecimal getEndScore() { + return endScore; + } + + public void setEndScore(BigDecimal endScore) { + this.endScore = endScore; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhVoteRecard.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhVoteRecard.java index a139c25..89da6e2 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhVoteRecard.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhVoteRecard.java @@ -1,19 +1,17 @@ package com.ruoyi.kaohe.domain; -import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; -import org.springframework.format.annotation.DateTimeFormat; /** * 投票记录对象 kh_vote_recard - * + * * @author hs - * @date 2025-06-17 + * @date 2025-07-04 */ public class KhVoteRecard extends BaseEntity { @@ -22,140 +20,151 @@ public class KhVoteRecard extends BaseEntity /** 主键 */ private Long id; + /** 评测id */ + @Excel(name = "评测id") + private Long pcId; + + /** 考核项id */ + @Excel(name = "考核项id") + private Long khitemId; + /** 投票活动id */ @Excel(name = "投票活动id") private Long voteId; - /** 投票人id */ - @Excel(name = "投票人id") - private Long tpEmpId; - - /** 投票人 */ - @Excel(name = "投票人") - private String tpEmpName; - /** 用户id */ @Excel(name = "用户id") private Long userId; - /** 被投人id */ - @Excel(name = "被投人id") - private Long voteEmpId; + /** 用户名 */ + @Excel(name = "用户名") + private String userName; + + /** 投票人uid */ + @Excel(name = "投票人uid") + private String uid; - /** 被投人 */ - @Excel(name = "被投人") - private String voteEmpName; + /** 投票人 */ + @Excel(name = "投票人") + private String tprName; - /** 投票分数 */ - @Excel(name = "投票分数") - private BigDecimal voteScore; + /** 评分详情 */ + @Excel(name = "评分详情") + private String voteDetails; /** 投票时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(name = "投票时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "投票时间", width = 30, dateFormat = "yyyy-MM-dd") private Date voteTime; - /** IP地址 */ - @Excel(name = "IP地址") + /** IP */ + @Excel(name = "IP") private String ipAddress; - public void setId(Long id) + public void setId(Long id) { this.id = id; } - public Long getId() + public Long getId() { return id; } - public void setVoteId(Long voteId) + public void setPcId(Long pcId) { - this.voteId = voteId; + this.pcId = pcId; } - public Long getVoteId() + public Long getPcId() { - return voteId; + return pcId; } - public void setTpEmpId(Long tpEmpId) + public void setKhitemId(Long khitemId) { - this.tpEmpId = tpEmpId; + this.khitemId = khitemId; } - public Long getTpEmpId() + public Long getKhitemId() { - return tpEmpId; + return khitemId; } - public void setTpEmpName(String tpEmpName) + public void setVoteId(Long voteId) { - this.tpEmpName = tpEmpName; + this.voteId = voteId; } - public String getTpEmpName() + public Long getVoteId() { - return tpEmpName; + return voteId; } - public void setUserId(Long userId) + public void setUserId(Long userId) { this.userId = userId; } - public Long getUserId() + public Long getUserId() { return userId; } - public void setVoteEmpId(Long voteEmpId) + public void setUserName(String userName) { - this.voteEmpId = voteEmpId; + this.userName = userName; } - public Long getVoteEmpId() + public String getUserName() { - return voteEmpId; + return userName; + } + + public String getUid() { + return uid; + } + + public void setUid(String uid) { + this.uid = uid; } - public void setVoteEmpName(String voteEmpName) + public void setTprName(String tprName) { - this.voteEmpName = voteEmpName; + this.tprName = tprName; } - public String getVoteEmpName() + public String getTprName() { - return voteEmpName; + return tprName; } - public void setVoteScore(BigDecimal voteScore) + public void setVoteDetails(String voteDetails) { - this.voteScore = voteScore; + this.voteDetails = voteDetails; } - public BigDecimal getVoteScore() + public String getVoteDetails() { - return voteScore; + return voteDetails; } - public void setVoteTime(Date voteTime) + public void setVoteTime(Date voteTime) { this.voteTime = voteTime; } - public Date getVoteTime() + public Date getVoteTime() { return voteTime; } - public void setIpAddress(String ipAddress) + public void setIpAddress(String ipAddress) { this.ipAddress = ipAddress; } - public String getIpAddress() + public String getIpAddress() { return ipAddress; } @@ -163,21 +172,22 @@ public class KhVoteRecard extends BaseEntity @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("voteId", getVoteId()) - .append("tpEmpId", getTpEmpId()) - .append("tpEmpName", getTpEmpName()) - .append("userId", getUserId()) - .append("voteEmpId", getVoteEmpId()) - .append("voteEmpName", getVoteEmpName()) - .append("voteScore", getVoteScore()) - .append("voteTime", getVoteTime()) - .append("ipAddress", getIpAddress()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); + .append("id", getId()) + .append("pcId", getPcId()) + .append("khitemId", getKhitemId()) + .append("voteId", getVoteId()) + .append("userId", getUserId()) + .append("userName", getUserName()) + .append("uid", getUid()) + .append("tprName", getTprName()) + .append("voteDetails", getVoteDetails()) + .append("voteTime", getVoteTime()) + .append("ipAddress", getIpAddress()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); } } diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhVoteRecardParam.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhVoteRecardParam.java new file mode 100644 index 0000000..c2b49b7 --- /dev/null +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhVoteRecardParam.java @@ -0,0 +1,166 @@ +package com.ruoyi.kaohe.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * 投票记录对象 kh_vote_recard + * + * @author hs + * @date 2025-06-17 + */ +public class KhVoteRecardParam extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 评测id */ + @Excel(name = "评测id") + private Long pcId; + + /** 考核类型id */ + @Excel(name = "考核类型id") + private Long khitemTypeid; + + /** 考核项id */ + @Excel(name = "考核项id") + private Long khitemId; + + /** 投票活动id */ + @Excel(name = "投票活动id") + private Long voteId; + + /** 用户id */ + @Excel(name = "用户id") + private Long userId; + + /** 用户名 */ + @Excel(name = "用户名") + private String userName; + + /** 投票人uid */ + @Excel(name = "投票人uid") + private String uid; + + /** 投票人 */ + @Excel(name = "投票人") + private String tprName; + + /** 评分详情 */ + @Excel(name = "评分详情") + private String voteDetails; + + /** 投票时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "投票时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date voteTime; + + /** IP */ + @Excel(name = "IP") + private String ipAddress; + + private List voteEmpList; + + public Long getKhitemTypeid() { + return khitemTypeid; + } + + public void setKhitemTypeid(Long khitemTypeid) { + this.khitemTypeid = khitemTypeid; + } + + public Long getPcId() { + return pcId; + } + + public void setPcId(Long pcId) { + this.pcId = pcId; + } + + public Long getKhitemId() { + return khitemId; + } + + public void setKhitemId(Long khitemId) { + this.khitemId = khitemId; + } + + public Long getVoteId() { + return voteId; + } + + public void setVoteId(Long voteId) { + this.voteId = voteId; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getUid() { + return uid; + } + + public void setUid(String uid) { + this.uid = uid; + } + + public String getTprName() { + return tprName; + } + + public void setTprName(String tprName) { + this.tprName = tprName; + } + + public String getVoteDetails() { + return voteDetails; + } + + public void setVoteDetails(String voteDetails) { + this.voteDetails = voteDetails; + } + + public Date getVoteTime() { + return voteTime; + } + + public void setVoteTime(Date voteTime) { + this.voteTime = voteTime; + } + + public String getIpAddress() { + return ipAddress; + } + + public void setIpAddress(String ipAddress) { + this.ipAddress = ipAddress; + } + + public List getVoteEmpList() { + return voteEmpList; + } + + public void setVoteEmpList(List voteEmpList) { + this.voteEmpList = voteEmpList; + } +} diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhVoteEmpService.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhVoteEmpService.java index 7dd9cc2..09ff4e3 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhVoteEmpService.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhVoteEmpService.java @@ -1,7 +1,10 @@ package com.ruoyi.kaohe.service; import java.util.List; + +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.kaohe.domain.KhVoteEmp; +import com.ruoyi.kaohe.domain.KhVoteRecardParam; /** * 投票选项Service接口 @@ -58,4 +61,6 @@ public interface IKhVoteEmpService * @return 结果 */ public int deleteKhVoteEmpById(Long id); + + AjaxResult voteSubmit(KhVoteRecardParam param); } diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java index f39666e..d7308d3 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java @@ -1,12 +1,24 @@ package com.ruoyi.kaohe.service.impl; +import java.math.BigDecimal; +import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import com.alibaba.fastjson2.JSON; +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.kaohe.domain.KhVoteRecard; +import com.ruoyi.kaohe.domain.KhVoteRecardParam; +import com.ruoyi.kaohe.mapper.KhVoteRecardMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.kaohe.mapper.KhVoteEmpMapper; import com.ruoyi.kaohe.domain.KhVoteEmp; import com.ruoyi.kaohe.service.IKhVoteEmpService; +import org.springframework.transaction.annotation.Transactional; /** * 投票选项Service业务层处理 @@ -19,6 +31,8 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService { @Autowired private KhVoteEmpMapper khVoteEmpMapper; + @Autowired + private KhVoteRecardMapper khVoteRecardMapper; /** * 查询投票选项 @@ -93,4 +107,81 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService { return khVoteEmpMapper.deleteKhVoteEmpById(id); } + + @Override + @Transactional + public AjaxResult voteSubmit(KhVoteRecardParam param) { + Map xuanxiangDetails = new HashMap<>(); + BigDecimal num = new BigDecimal("1");//投票人数+1 + List voteEmpList = param.getVoteEmpList(); + Date nowDate = DateUtils.getNowDate(); + Long typeid = param.getKhitemTypeid(); + BigDecimal a = new BigDecimal("100"); + BigDecimal b = new BigDecimal("80"); + BigDecimal c = new BigDecimal("60"); + BigDecimal d = new BigDecimal("40"); + for(KhVoteEmp voteEmp:voteEmpList){ + voteEmp.setUpdateTime(nowDate); + //根据id查询数据得到之前的值 + KhVoteEmp oldvoteEmp = khVoteEmpMapper.selectKhVoteEmpById(voteEmp.getId()); + if (typeid.equals(1L)) {//选项评分 + //存储投票详情到map + if(voteEmp.getOptionA().compareTo(new BigDecimal("0"))==1){ + xuanxiangDetails.put(voteEmp.getBkhdxName(),voteEmp.getOptionA()); + } + if(voteEmp.getOptionB().compareTo(new BigDecimal("0"))==1){ + xuanxiangDetails.put(voteEmp.getBkhdxName(),voteEmp.getOptionB()); + } + if(voteEmp.getOptionC().compareTo(new BigDecimal("0"))==1){ + xuanxiangDetails.put(voteEmp.getBkhdxName(),voteEmp.getOptionC()); + } + if(voteEmp.getOptionD().compareTo(new BigDecimal("0"))==1){ + xuanxiangDetails.put(voteEmp.getBkhdxName(),voteEmp.getOptionD()); + } + //修改投票情况 + BigDecimal optionA = voteEmp.getOptionA().add(oldvoteEmp.getOptionA()); + BigDecimal optionB = voteEmp.getOptionB().add(oldvoteEmp.getOptionB()); + BigDecimal optionC = voteEmp.getOptionC().add(oldvoteEmp.getOptionC()); + BigDecimal optionD = voteEmp.getOptionD().add(oldvoteEmp.getOptionD()); + voteEmp.setVoteNum(oldvoteEmp.getVoteNum().add(num)); + BigDecimal avgScore = optionA.multiply(a).add( + optionB.multiply(b).add(optionC.multiply(c).add(optionD.multiply(d))) + ).divide(voteEmp.getVoteNum()); + voteEmp.setAvgScore(avgScore);//投票后计算平均分 + if(voteEmp.getPercentage()!=null){ //计算最后得分 + voteEmp.setEndScore(avgScore.multiply(voteEmp.getPercentage())); + } + }else if(typeid.equals(2L)){//占比评分 + BigDecimal sumScore = voteEmp.getScore().add(oldvoteEmp.getVoteScore()); + voteEmp.setVoteScore(sumScore); + //修改投票人数 平均分*占比=最后得分 + voteEmp.setVoteNum(oldvoteEmp.getVoteNum().add(num)); + voteEmp.setAvgScore(sumScore.divide(voteEmp.getVoteNum())); + voteEmp.setEndScore(voteEmp.getAvgScore().multiply(oldvoteEmp.getPercentage())); + }else{//单独评分 不占比 以平均分为最后得分 + BigDecimal sumScore = voteEmp.getScore().add(oldvoteEmp.getVoteScore()); + voteEmp.setVoteNum(oldvoteEmp.getVoteNum() + .add(num)); + voteEmp.setVoteScore(sumScore); + voteEmp.setAvgScore(sumScore.divide(voteEmp.getVoteNum())); + voteEmp.setEndScore(voteEmp.getAvgScore()); + } + khVoteEmpMapper.updateKhVoteEmp(voteEmp); + } + //存储投票记录 + KhVoteRecard recard = new KhVoteRecard(); + recard.setVoteId(param.getVoteId()); + recard.setUserId(param.getUserId()); + recard.setUserName(param.getUserName()); + recard.setUid(param.getUid()); + recard.setVoteTime(nowDate); + if (typeid.equals(1L)) {//选项评分 + recard.setVoteDetails(JSON.toJSONString(xuanxiangDetails)); + }else{ + Map details = voteEmpList.stream().collect(Collectors.toMap(KhVoteEmp::getBkhdxName, KhVoteEmp::getScore)); + recard.setVoteDetails(JSON.toJSONString(details)); + } + khVoteRecardMapper.insertKhVoteRecard(recard); + return AjaxResult.success(); + } } diff --git a/ruoyi-kaohe/src/main/resources/mapper/kaohe/KhVoteRecardMapper.xml b/ruoyi-kaohe/src/main/resources/mapper/kaohe/KhVoteRecardMapper.xml index e2af5af..849eb18 100644 --- a/ruoyi-kaohe/src/main/resources/mapper/kaohe/KhVoteRecardMapper.xml +++ b/ruoyi-kaohe/src/main/resources/mapper/kaohe/KhVoteRecardMapper.xml @@ -1,18 +1,19 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + + + - - - - - + + + + @@ -23,24 +24,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, vote_id, tp_emp_id, tp_emp_name, user_id, vote_emp_id, vote_emp_name, vote_score, vote_time, ip_address, create_by, create_time, update_by, update_time, remark from kh_vote_recard + select id, pc_id, khitem_id, vote_id, user_id, user_name, uid, tpr_name, vote_details, vote_time, ip_address, create_by, create_time, update_by, update_time, remark from kh_vote_recard - +