测试bug修复

master
c1769 2 years ago
parent e55f2c9c0b
commit 0c6e8595c3

@ -46,4 +46,6 @@ public interface UserExaminationsDao extends BaseMapper<UserExaminations> {
public Long getExaminationStudentCount(UserExaminationsQuery userExaminationsQuery); public Long getExaminationStudentCount(UserExaminationsQuery userExaminationsQuery);
int hasZeroScores(Long examinationId); int hasZeroScores(Long examinationId);
List<UserExaminations> notParticipatingUsers(Long examinationId);
} }

@ -286,6 +286,16 @@ public class Financings extends PageParam<Financings> implements java.io.Seriali
*/ */
private Date financingAuditTime; private Date financingAuditTime;
/**
*
*/
private Date inWarehouseStartTime;
/**
*
*/
private Date lastRepaymentTime;
/** /**
* *
*/ */

@ -630,6 +630,9 @@ public class FinancingsService extends CoreBaseService<Financings> {
// 还款编号 下一次还款次数 // 还款编号 下一次还款次数
financings.setRepaymentNo(repaymentsService.getNewRepaymentNo()); financings.setRepaymentNo(repaymentsService.getNewRepaymentNo());
financings.setRepaymentCount(repaymentsService.getNextRepaymentCount(financings.getFinancingNo())); financings.setRepaymentCount(repaymentsService.getNextRepaymentCount(financings.getFinancingNo()));
// 获取上一次还款时间
financings.setLastRepaymentTime(repaymentsService.getLastRepaymentTime(financings.getId()));
} }
// 获取保兑仓融资的保证金信息 // 获取保兑仓融资的保证金信息

@ -127,6 +127,10 @@ public class PickupProducts extends PageParam<PickupProducts> {
* () * ()
*/ */
private BigDecimal repaymentAmount; private BigDecimal repaymentAmount;
/**
*
*/
private BigDecimal lastRepaymentAmount;
/** /**
* *
*/ */

@ -9,6 +9,7 @@ import com.ibeetl.jlw.flow.financings.entity.Financings;
import com.ibeetl.jlw.flow.financings.service.FinancingsService; import com.ibeetl.jlw.flow.financings.service.FinancingsService;
import com.ibeetl.jlw.flow.pickupproducts.dao.PickupProductsDao; import com.ibeetl.jlw.flow.pickupproducts.dao.PickupProductsDao;
import com.ibeetl.jlw.flow.pickupproducts.entity.PickupProducts; import com.ibeetl.jlw.flow.pickupproducts.entity.PickupProducts;
import com.ibeetl.jlw.flow.repayments.entity.Repayments;
import com.ibeetl.jlw.flow.repayments.service.RepaymentsService; import com.ibeetl.jlw.flow.repayments.service.RepaymentsService;
import com.ibeetl.jlw.service.ExaminationInstancesService; import com.ibeetl.jlw.service.ExaminationInstancesService;
import org.beetl.sql.core.engine.PageQuery; import org.beetl.sql.core.engine.PageQuery;
@ -170,7 +171,14 @@ public class PickupProductsService extends CoreBaseService<PickupProducts> {
queryParam.setPickupStatus(0); queryParam.setPickupStatus(0);
info.setProducts(contractsProductsService.getList(queryParam)); info.setProducts(contractsProductsService.getList(queryParam));
info.setPickupApplyNo(getNewPickupApplyNo()); info.setPickupApplyNo(getNewPickupApplyNo());
info.setRepaymentTime(repaymentsService.getLastRepaymentTime(financings.getId())); // 最近还款日期
final Repayments lastRepayment = repaymentsService.getLastRepayment(financings.getId());
if (lastRepayment != null) {
info.setRepaymentTime(lastRepayment.getRepaymentTime()); // 最近还款日期
info.setLastRepaymentAmount(lastRepayment.getRepaymentAmount()); // 最近还款金额
} else {
info.setLastRepaymentAmount(BigDecimal.ZERO); // 最近还款金额
}
BigDecimal repaymentAmount = financings.getRepaymentAmount() == null BigDecimal repaymentAmount = financings.getRepaymentAmount() == null
? BigDecimal.ZERO : financings.getRepaymentAmount(); ? BigDecimal.ZERO : financings.getRepaymentAmount();

@ -96,6 +96,18 @@ public class RepaymentsService extends CoreBaseService<Repayments> {
return repayments == null ? null : repayments.getRepaymentTime(); return repayments == null ? null : repayments.getRepaymentTime();
} }
/**
*
*
* @param financingId ID
*/
public Repayments getLastRepayment(Long financingId) {
return repaymentsDao.createLambdaQuery()
.andEq(Repayments::getFinancingId, financingId)
.desc(Repayments::getRepaymentTime)
.single();
}
/** /**
* *
*/ */

@ -305,4 +305,15 @@ public class ExaminationFinancialsService extends CoreBaseService<ExaminationFin
} }
return target.setScale(2, RoundingMode.HALF_UP); return target.setScale(2, RoundingMode.HALF_UP);
} }
public static ExaminationFinancials initFinancial() {
final ExaminationFinancials nef = new ExaminationFinancials();
final BigDecimal w100 = BigDecimal.valueOf(1000000);
nef.setCreatedAt(new Date());
nef.setInitBalance(w100);
nef.setBalance(w100);
nef.setProductAssets(BigDecimal.ZERO);
nef.setRaiseRate(BigDecimal.ZERO);
return nef;
}
} }

@ -1,5 +1,6 @@
package com.ibeetl.jlw.service; package com.ibeetl.jlw.service;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -61,4 +62,13 @@ public class ExaminationInstancesService extends CoreBaseService<ExaminationInst
public void finishStep(Long id, Integer step) { public void finishStep(Long id, Integer step) {
examinationInstancesDao.finishStep(id, step); examinationInstancesDao.finishStep(id, step);
} }
public static ExaminationInstances initInstance(Long examinationId, Long flowId) {
final ExaminationInstances nei = new ExaminationInstances();
nei.setCreatedAt(new Date());
nei.setExaminationId(examinationId);
nei.setFlowId(flowId);
nei.setFinishStep(0);
return nei;
}
} }

@ -24,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -51,6 +52,8 @@ public class ExaminationsService extends CoreBaseService<Examinations> {
private FlowsService flowsService; private FlowsService flowsService;
@Autowired @Autowired
private ExaminationFinancialsService examinationFinancialsService; private ExaminationFinancialsService examinationFinancialsService;
@Autowired
private ExaminationInstancesService examinationInstancesService;
@Autowired @Autowired
private UserExaminationsService userExaminationsService; private UserExaminationsService userExaminationsService;
@ -960,18 +963,20 @@ public class ExaminationsService extends CoreBaseService<Examinations> {
} }
examinationFinancialsService.updateBatchTemplate(updateExFinancList); examinationFinancialsService.updateBatchTemplate(updateExFinancList);
int teamOrder = 0;
// 已提交成绩的实训,计算个人排名和团队排名 // 已提交成绩的实训,计算个人排名和团队排名
final List<UserExaminations> updateUserExFinancList = new ArrayList<>(); final List<UserExaminations> updateUserExFinancList = new ArrayList<>();
if (examinations.getMode() >= 1) { if (examinations.getMode() >= 1) {
final Map<Long, List<UserExaminations>> collect = userExaminations.stream() final Map<Long, List<UserExaminations>> collect = userExaminations.stream()
.collect(Collectors.groupingBy(UserExaminations::getTeamId)); .collect(Collectors.groupingBy(UserExaminations::getTeamId));
for (List<UserExaminations> value : collect.values()) { for (List<UserExaminations> value : collect.values()) {
setScoreOrder(value, true); teamOrder = setScoreOrder(value, true);
} }
} else { } else {
userExaminations.forEach(i -> i.setTeamOrders(1)); userExaminations.forEach(i -> i.setTeamOrders(null));
} }
setScoreOrder(userExaminations, false);
int classOrder = setScoreOrder(userExaminations, false);
for (UserExaminations userExamination : userExaminations) { for (UserExaminations userExamination : userExaminations) {
final UserExaminations updateUE = new UserExaminations(); final UserExaminations updateUE = new UserExaminations();
updateUE.setId(userExamination.getId()); updateUE.setId(userExamination.getId());
@ -980,9 +985,43 @@ public class ExaminationsService extends CoreBaseService<Examinations> {
updateUserExFinancList.add(updateUE); updateUserExFinancList.add(updateUE);
} }
userExaminationsService.updateBatchTemplate(updateUserExFinancList); userExaminationsService.updateBatchTemplate(updateUserExFinancList);
// 未参加实训的学生记零分
final List<UserExaminations> notParticipatingUsers = userExaminationsService.notParticipatingUsers(examinationId);
if (notParticipatingUsers.isEmpty()) {
return;
}
for (UserExaminations u : notParticipatingUsers) {
final ExaminationInstances nei = ExaminationInstancesService.initInstance(examinationId, examinations.getFlowId());
nei.setStatus(1);
nei.setTeamId(u.getTeamId() == null ? 0L : u.getTeamId());
final UserExaminations nue = UserExaminationsService.initUserExamination(examinationId, examinations.getFlowId());
nue.setUserId(u.getUserId());
nue.setTeamId(u.getTeamId() == null ? 0L : u.getTeamId());
nue.setStatus(2);
nue.setFinishTime(new Date());
nue.setClassId(u.getClassId());
nue.setTeamOrders(teamOrder);
nue.setClassOrders(classOrder);
final ExaminationFinancials nef = ExaminationFinancialsService.initFinancial();
nef.setRaiseOrders(orderKey);
nef.setType(1);
nef.setUserId(u.getUserId());
final KeyHolder nefKey = examinationFinancialsService.insertReturnKey(nef);
nue.setFinancialId(nefKey.getLong());
final KeyHolder neiKey = examinationInstancesService.insertReturnKey(nei);
nue.setInstanceId(neiKey.getLong());
userExaminationsService.insert(nue);
}
} }
private void setScoreOrder(List<UserExaminations> userExaminations, boolean isTeam) { private int setScoreOrder(List<UserExaminations> userExaminations, boolean isTeam) {
userExaminations.sort(Comparator.comparing(UserExaminations::getTotalScores)); userExaminations.sort(Comparator.comparing(UserExaminations::getTotalScores));
Collections.reverse(userExaminations); Collections.reverse(userExaminations);
int orderKey = 1; int orderKey = 1;
@ -997,6 +1036,7 @@ public class ExaminationsService extends CoreBaseService<Examinations> {
} }
orderKey++; orderKey++;
} }
return orderKey;
} }
} }

@ -354,11 +354,9 @@ public class UserExaminationsService extends CoreBaseService<UserExaminations> {
final ExaminationScore chart = userExaminationsDao.getStudentExaminationScoreChart(userExaminationsQuery); final ExaminationScore chart = userExaminationsDao.getStudentExaminationScoreChart(userExaminationsQuery);
final Long studentCount = getExaminationStudentCount(userExaminationsQuery); final Long studentCount = getExaminationStudentCount(userExaminationsQuery);
if (studentCount > 0) { if (studentCount > 0) {
final Long num = chart.getNum();
final BigDecimal totalScores = chart.getTotalScores(); final BigDecimal totalScores = chart.getTotalScores();
final BigDecimal avg = totalScores.divide(BigDecimal.valueOf(studentCount), RoundingMode.HALF_UP) final BigDecimal avg = totalScores.divide(BigDecimal.valueOf(studentCount), RoundingMode.HALF_UP)
.setScale(2, RoundingMode.HALF_UP); .setScale(2, RoundingMode.HALF_UP);
chart.setBad(studentCount - num);
chart.setAvg(avg); chart.setAvg(avg);
} }
return chart; return chart;
@ -511,4 +509,27 @@ public class UserExaminationsService extends CoreBaseService<UserExaminations> {
return userExaminationsDao.getTeacherClassExaminationScoreChart(teacherId); return userExaminationsDao.getTeacherClassExaminationScoreChart(teacherId);
} }
/**
*
*
* @param examinationId ID
*/
public List<UserExaminations> notParticipatingUsers(Long examinationId) {
return userExaminationsDao.notParticipatingUsers(examinationId);
}
public static UserExaminations initUserExamination(Long examinationId, Long flowId) {
final UserExaminations nue = new UserExaminations();
nue.setCreatedAt(new Date());
nue.setExaminationId(examinationId);
nue.setFlowId(flowId);
nue.setFlowScores(BigDecimal.ZERO);
nue.setReportScores(BigDecimal.ZERO);
nue.setRaiseScores(BigDecimal.ZERO);
nue.setDurationScores(BigDecimal.ZERO);
nue.setTotalScores(BigDecimal.ZERO);
nue.setOperatorScores(BigDecimal.ZERO);
return nue;
}
} }

@ -137,12 +137,14 @@ chzyPageQueryByCondition
t.*, (t.fk_amount + t.interest_amount - t.repayment_amount) financing_amount, t.*, (t.fk_amount + t.interest_amount - t.repayment_amount) financing_amount,
t2.express_id, t2.express_name, t2.express_id, t2.express_name,
t3.send_no, t3.send_no,
t4.telephone seller_telephone, t4.corporation seller_corporation t4.telephone seller_telephone, t4.corporation seller_corporation,
t5.in_warehouse_start_time
@} @}
from financings t from financings t
join protocols t2 on t2.id = t.protocol_id join protocols t2 on t2.id = t.protocol_id
join send_products t3 on t3.protocol_id = t2.id join send_products t3 on t3.protocol_id = t2.id
join materials t4 on t4.id = t.seller_id join materials t4 on t4.id = t.seller_id
join warehouse_receipt t5 on t5.protocol_id = t.protocol_id
where 1=1 where 1=1
@if(!isEmpty(examinationId)){ @if(!isEmpty(examinationId)){
and t.examination_id =#examinationId# and t.examination_id =#examinationId#

@ -46,7 +46,7 @@ scoresListOfStudent
AND es.scores_status = 1 AND es.scores_status = 1
AND es.type =1 AND es.type =1
ORDER BY ORDER BY
us.id DESC us.finish_time DESC
getMyScoresByValues getMyScoresByValues
=== ===
@ -75,7 +75,7 @@ getUserAndExaminations
AND es.`status` = 2 AND es.`status` = 2
AND es.scores_status = 1 AND es.scores_status = 1
AND es.type = 1 AND es.type = 1
ORDER BY e.id DESC ORDER BY e.finish_time DESC
limit 0,1; limit 0,1;
queryByCondition queryByCondition
@ -358,7 +358,7 @@ getStudentExaminationScoreList
@ if(!isEmpty(username)){ @ if(!isEmpty(username)){
and ( t1.username like #'%'+username+'%'# or t1.student_id like #'%'+username+'%'# ) and ( t1.username like #'%'+username+'%'# or t1.student_id like #'%'+username+'%'# )
@} @}
order by t2.report_scores, t2.id order by t2.report_scores desc, t2.id
```` ````
@ -472,3 +472,28 @@ from user_examinations t
where t.examination_id = #examinationId# where t.examination_id = #examinationId#
and t.status < 2 and t.status < 2
and (t.report_scores = 0 or t.report_scores is null) and (t.report_scores = 0 or t.report_scores is null)
notParticipatingUsers
===
* 未参加实训考核的学生数据
SELECT
t3.username, t3.id user_Id, t3.class_id, t6.team_id
FROM
users t3
LEFT JOIN user_teams t6 on t6.user_id = t3.id
LEFT JOIN teams t7 on t7.id = t6.team_id
WHERE
t3.class_id IN ( SELECT class_id FROM examination_classes t4 WHERE t4.examination_id = #examinationId# )
AND
t3.id NOT IN (
SELECT
user_id
FROM
user_examinations t5
WHERE
t5.examination_id = #examinationId#
)
AND (t7.examination_id = #examinationId# or t7.examination_id is null)

Loading…
Cancel
Save