From 0d892a89a8cd6ec7206314a3d74e815dcf6c873b Mon Sep 17 00:00:00 2001
From: "@t2652009480" <2652009480@qq.com>
Date: Wed, 19 Mar 2025 10:32:21 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=9B=B4=E6=96=B0=E5=AD=A6?=
 =?UTF-8?q?=E7=94=9F=E8=A1=A8=E6=88=90=E7=BB=A9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../stu/ImportletterController.java           |  15 +-
 .../tch/TchSummaryGradesController.java       |  76 +++++-----
 .../sztzjy/bank/entity/PaymentAcceptance.java |  22 +++
 .../bank/entity/PaymentAcceptanceExample.java | 140 ++++++++++++++++++
 .../sztzjy/bank/entity/dto/AcceptanceDTO.java |  92 ++++++++++++
 .../bank/entity/dto/RegistrationDTO.java      |   2 +-
 .../bank/service/ImportletterService.java     |   6 +-
 .../service/impl/IUpdateScoreInfoImpl.java    |  44 ++++++
 .../service/impl/ImportletterServiceImpl.java |  32 ++++
 .../service/impl/PersonalLoanServiceImpl.java |   3 +
 .../impl/StuGradeManagementServiceImpl.java   |   4 +-
 .../impl/TchSummaryGradesServiceImpl.java     |  54 -------
 .../mappers/PaymentAcceptanceMapper.xml       |  58 ++++++--
 13 files changed, 434 insertions(+), 114 deletions(-)
 create mode 100644 src/main/java/com/sztzjy/bank/entity/dto/AcceptanceDTO.java

diff --git a/src/main/java/com/sztzjy/bank/controller/stu/ImportletterController.java b/src/main/java/com/sztzjy/bank/controller/stu/ImportletterController.java
index 28ee488..f97f797 100644
--- a/src/main/java/com/sztzjy/bank/controller/stu/ImportletterController.java
+++ b/src/main/java/com/sztzjy/bank/controller/stu/ImportletterController.java
@@ -2,10 +2,7 @@ package com.sztzjy.bank.controller.stu;
 
 import com.sztzjy.bank.annotation.AnonymousAccess;
 import com.sztzjy.bank.entity.*;
-import com.sztzjy.bank.entity.dto.ApplicationForOpeningDTO;
-import com.sztzjy.bank.entity.dto.BillAdvanceDTO;
-import com.sztzjy.bank.entity.dto.OutwardRemittanceDTO;
-import com.sztzjy.bank.entity.dto.RegistrationDTO;
+import com.sztzjy.bank.entity.dto.*;
 import com.sztzjy.bank.service.ImportletterService;
 import com.sztzjy.bank.service.TradeContractService;
 import com.sztzjy.bank.util.ResultEntity;
@@ -219,4 +216,14 @@ public class ImportletterController {
             return  new ResultEntity<>(HttpStatus.OK,type+"失败");
         }
     }
+
+    @AnonymousAccess
+    @ApiOperation("来单登记-操作记录回显")
+    @GetMapping("getAcceptanceDTO")
+    public ResultEntity<AcceptanceDTO> getAcceptanceDTO(@ApiParam("用户ID") String userId,
+                                                            @ApiParam("案例序号") Integer number,
+                                                            @ApiParam("模块") String module) {
+
+        return new ResultEntity<>(importletterService.getAcceptanceDTO(userId,number,module));
+    }
 }
diff --git a/src/main/java/com/sztzjy/bank/controller/tch/TchSummaryGradesController.java b/src/main/java/com/sztzjy/bank/controller/tch/TchSummaryGradesController.java
index cc7de83..3ff6221 100644
--- a/src/main/java/com/sztzjy/bank/controller/tch/TchSummaryGradesController.java
+++ b/src/main/java/com/sztzjy/bank/controller/tch/TchSummaryGradesController.java
@@ -3,13 +3,17 @@ package com.sztzjy.bank.controller.tch;
 import com.github.pagehelper.PageInfo;
 import com.sztzjy.bank.annotation.AnonymousAccess;
 import com.sztzjy.bank.entity.StuUser;
+import com.sztzjy.bank.entity.StuUserExample;
 import com.sztzjy.bank.entity.dto.StuAcademicRecordDTO;
 import com.sztzjy.bank.entity.dto.TchProjectAnalysisDTO;
+import com.sztzjy.bank.mapper.StuUserMapper;
 import com.sztzjy.bank.service.TchSummaryGradesService;
 import com.sztzjy.bank.util.ResultEntity;
+import com.sztzjy.bank.util.excel.FilePortUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import org.hibernate.service.spi.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.validation.annotation.Validated;
@@ -35,6 +39,8 @@ public class TchSummaryGradesController {
 
     @Autowired
     TchSummaryGradesService summaryGradesService;
+    @Autowired
+    StuUserMapper stuUserMapper;
 
     @AnonymousAccess
     @ApiOperation("成绩总览")
@@ -57,40 +63,38 @@ public class TchSummaryGradesController {
     }
 
 
-//    @ApiOperation("成绩总览导出")
-//    @GetMapping("/export")
-//    @AnonymousAccess
-//    public void export(HttpServletResponse response,
-//                       @ApiParam("用户ID") String schoolId) {
-//
-//
-//        //导出的表名
-//        String title = "成绩总览";
-//
-//        String[] headers = {"学号", "姓名", "班级", "练习进度", "练习时长","练习成绩","排名"};
-//
-//        StuUser stuUser = stuUserMapper.selectByPrimaryKey(userId);
-//
-//        StuScoreDetailsExample example=new StuScoreDetailsExample();
-//        example.createCriteria().andUserIdEqualTo(userId);
-//        List<StuScoreDetails> stuScoreDetails = scoreDetailsMapper.selectByExample(example);
-//
-//
-//        //实际数据结果集
-//        List<StuScoreDetailsDTO> proAchievementsList = recordService.getProAchievementsList(userId, stuUser.getSchoolId(), stuScoreDetails);
-//
-//
-//        if (!proAchievementsList.isEmpty()){
-//
-//            //具体需要写入excel需要哪些字段,这些字段取自UserReward类,也就是上面的实际数据结果集的泛型
-//            List<String> listColumn = Arrays.asList("number", "projectName", "score", "weight", "weightedScore");
-//            try {
-//                FilePortUtil.exportExcel(response, title, headers, proAchievementsList, listColumn);
-//            } catch (Exception e) {
-//                e.printStackTrace();
-//            }
-//        }else {
-//            throw new ServiceException(HttpStatus.ACCEPTED,"未查询到成绩信息,导出失败");
-//        }
-//    }
+    @ApiOperation("成绩总览导出")
+    @GetMapping("/export")
+    @AnonymousAccess
+    public void export(HttpServletResponse response,
+                       @ApiParam("用户ID") String schoolId) {
+
+
+        //导出的表名
+        String title = "成绩总览";
+
+        String[] headers = {"学号", "姓名", "班级", "练习进度", "练习时长","练习成绩","排名"};
+
+        StuUserExample example=new StuUserExample();
+        example.createCriteria().andUserIdEqualTo(schoolId);
+
+
+
+        //实际数据结果集
+        List<StuUser> stuUsers = stuUserMapper.selectByExample(example);
+
+
+        if (!stuUsers.isEmpty()){
+
+            //具体需要写入excel需要哪些字段,这些字段取自UserReward类,也就是上面的实际数据结果集的泛型
+            List<String> listColumn = Arrays.asList("studentId", "name", "className", "practiceProgress", "practiceDuration","practiceResults","ranking");
+            try {
+                FilePortUtil.exportExcel(response, title, headers, stuUsers, listColumn);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }else {
+            throw new ServiceException("未查询到成绩信息,导出失败");
+        }
+    }
 }
diff --git a/src/main/java/com/sztzjy/bank/entity/PaymentAcceptance.java b/src/main/java/com/sztzjy/bank/entity/PaymentAcceptance.java
index 4ac4688..52f11a9 100644
--- a/src/main/java/com/sztzjy/bank/entity/PaymentAcceptance.java
+++ b/src/main/java/com/sztzjy/bank/entity/PaymentAcceptance.java
@@ -28,9 +28,15 @@ public class PaymentAcceptance {
     @ApiModelProperty(notes = "承兑币种")
     private String acceptanceCurrency;
 
+    @ApiModelProperty(notes = "实收承兑费手续费金额")
+    private String actualAcceptance;
+
     @ApiModelProperty(notes = "承兑金额")
     private String acceptanceAmount;
 
+    @ApiModelProperty(notes = "实收邮费金额")
+    private String actualPostageAmountReceived;
+
     @ApiModelProperty(notes = "受益人")
     private String beneficiary;
 
@@ -115,6 +121,14 @@ public class PaymentAcceptance {
         this.acceptanceCurrency = acceptanceCurrency == null ? null : acceptanceCurrency.trim();
     }
 
+    public String getActualAcceptance() {
+        return actualAcceptance;
+    }
+
+    public void setActualAcceptance(String actualAcceptance) {
+        this.actualAcceptance = actualAcceptance == null ? null : actualAcceptance.trim();
+    }
+
     public String getAcceptanceAmount() {
         return acceptanceAmount;
     }
@@ -123,6 +137,14 @@ public class PaymentAcceptance {
         this.acceptanceAmount = acceptanceAmount == null ? null : acceptanceAmount.trim();
     }
 
+    public String getActualPostageAmountReceived() {
+        return actualPostageAmountReceived;
+    }
+
+    public void setActualPostageAmountReceived(String actualPostageAmountReceived) {
+        this.actualPostageAmountReceived = actualPostageAmountReceived == null ? null : actualPostageAmountReceived.trim();
+    }
+
     public String getBeneficiary() {
         return beneficiary;
     }
diff --git a/src/main/java/com/sztzjy/bank/entity/PaymentAcceptanceExample.java b/src/main/java/com/sztzjy/bank/entity/PaymentAcceptanceExample.java
index 18d7020..022a067 100644
--- a/src/main/java/com/sztzjy/bank/entity/PaymentAcceptanceExample.java
+++ b/src/main/java/com/sztzjy/bank/entity/PaymentAcceptanceExample.java
@@ -525,6 +525,76 @@ public class PaymentAcceptanceExample {
             return (Criteria) this;
         }
 
+        public Criteria andActualAcceptanceIsNull() {
+            addCriterion("actual_acceptance is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualAcceptanceIsNotNull() {
+            addCriterion("actual_acceptance is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualAcceptanceEqualTo(String value) {
+            addCriterion("actual_acceptance =", value, "actualAcceptance");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualAcceptanceNotEqualTo(String value) {
+            addCriterion("actual_acceptance <>", value, "actualAcceptance");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualAcceptanceGreaterThan(String value) {
+            addCriterion("actual_acceptance >", value, "actualAcceptance");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualAcceptanceGreaterThanOrEqualTo(String value) {
+            addCriterion("actual_acceptance >=", value, "actualAcceptance");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualAcceptanceLessThan(String value) {
+            addCriterion("actual_acceptance <", value, "actualAcceptance");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualAcceptanceLessThanOrEqualTo(String value) {
+            addCriterion("actual_acceptance <=", value, "actualAcceptance");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualAcceptanceLike(String value) {
+            addCriterion("actual_acceptance like", value, "actualAcceptance");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualAcceptanceNotLike(String value) {
+            addCriterion("actual_acceptance not like", value, "actualAcceptance");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualAcceptanceIn(List<String> values) {
+            addCriterion("actual_acceptance in", values, "actualAcceptance");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualAcceptanceNotIn(List<String> values) {
+            addCriterion("actual_acceptance not in", values, "actualAcceptance");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualAcceptanceBetween(String value1, String value2) {
+            addCriterion("actual_acceptance between", value1, value2, "actualAcceptance");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualAcceptanceNotBetween(String value1, String value2) {
+            addCriterion("actual_acceptance not between", value1, value2, "actualAcceptance");
+            return (Criteria) this;
+        }
+
         public Criteria andAcceptanceAmountIsNull() {
             addCriterion("acceptance_amount is null");
             return (Criteria) this;
@@ -595,6 +665,76 @@ public class PaymentAcceptanceExample {
             return (Criteria) this;
         }
 
+        public Criteria andActualPostageAmountReceivedIsNull() {
+            addCriterion("actual_postage_amount_received is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualPostageAmountReceivedIsNotNull() {
+            addCriterion("actual_postage_amount_received is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualPostageAmountReceivedEqualTo(String value) {
+            addCriterion("actual_postage_amount_received =", value, "actualPostageAmountReceived");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualPostageAmountReceivedNotEqualTo(String value) {
+            addCriterion("actual_postage_amount_received <>", value, "actualPostageAmountReceived");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualPostageAmountReceivedGreaterThan(String value) {
+            addCriterion("actual_postage_amount_received >", value, "actualPostageAmountReceived");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualPostageAmountReceivedGreaterThanOrEqualTo(String value) {
+            addCriterion("actual_postage_amount_received >=", value, "actualPostageAmountReceived");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualPostageAmountReceivedLessThan(String value) {
+            addCriterion("actual_postage_amount_received <", value, "actualPostageAmountReceived");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualPostageAmountReceivedLessThanOrEqualTo(String value) {
+            addCriterion("actual_postage_amount_received <=", value, "actualPostageAmountReceived");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualPostageAmountReceivedLike(String value) {
+            addCriterion("actual_postage_amount_received like", value, "actualPostageAmountReceived");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualPostageAmountReceivedNotLike(String value) {
+            addCriterion("actual_postage_amount_received not like", value, "actualPostageAmountReceived");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualPostageAmountReceivedIn(List<String> values) {
+            addCriterion("actual_postage_amount_received in", values, "actualPostageAmountReceived");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualPostageAmountReceivedNotIn(List<String> values) {
+            addCriterion("actual_postage_amount_received not in", values, "actualPostageAmountReceived");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualPostageAmountReceivedBetween(String value1, String value2) {
+            addCriterion("actual_postage_amount_received between", value1, value2, "actualPostageAmountReceived");
+            return (Criteria) this;
+        }
+
+        public Criteria andActualPostageAmountReceivedNotBetween(String value1, String value2) {
+            addCriterion("actual_postage_amount_received not between", value1, value2, "actualPostageAmountReceived");
+            return (Criteria) this;
+        }
+
         public Criteria andBeneficiaryIsNull() {
             addCriterion("beneficiary is null");
             return (Criteria) this;
diff --git a/src/main/java/com/sztzjy/bank/entity/dto/AcceptanceDTO.java b/src/main/java/com/sztzjy/bank/entity/dto/AcceptanceDTO.java
new file mode 100644
index 0000000..6b6a51f
--- /dev/null
+++ b/src/main/java/com/sztzjy/bank/entity/dto/AcceptanceDTO.java
@@ -0,0 +1,92 @@
+package com.sztzjy.bank.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author tz
+ * @date 2025/3/19 9:21
+ */
+@Data
+public class AcceptanceDTO {
+    @ApiModelProperty(notes = "ID")
+    private String id;
+
+    @ApiModelProperty(notes = "收款行代码")
+    private String receivingBankCode;
+
+    @ApiModelProperty(notes = "收费方式")
+    private String chargingMethod;
+
+    @ApiModelProperty(notes = "我行代码")
+    private String writeCode;
+
+    @ApiModelProperty(notes = "电报费类型")
+    private String telegramFeeType;
+
+    @ApiModelProperty(notes = "承兑币种")
+    private String acceptanceCurrency;
+
+    @ApiModelProperty(notes = "实收承兑费手续费金额")
+    private String actualAcceptance;
+
+    @ApiModelProperty(notes = "承兑金额")
+    private String acceptanceAmount;
+
+    @ApiModelProperty(notes = "实收邮费金额")
+    private String actualPostageAmountReceived;
+
+    @ApiModelProperty(notes = "受益人")
+    private String beneficiary;
+
+    @ApiModelProperty(notes = "受益人结算账号")
+    private String benSettlementAccount;
+
+    @ApiModelProperty(notes = "付款人结算账号")
+    private String payerSettlementAccount;
+
+    @ApiModelProperty(notes = "付款人名称")
+    private String payerName;
+
+    @ApiModelProperty(notes = "扣费账号")
+    private String deductionAccount;
+
+    @ApiModelProperty(notes = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(notes = "更新时间")
+    private Date updateTime;
+
+    @ApiModelProperty(notes = "保存状态(0未保存、1已保存)")
+    private Integer saveStatus;
+
+    @ApiModelProperty(notes = "提交状态(0未提交、1已提交)")
+    private Integer submitStatus;
+
+    @ApiModelProperty(notes = "用户ID")
+    private String userId;
+
+    @ApiModelProperty(notes = "错误次数")
+    private Integer errorNumber;
+
+    @ApiModelProperty(notes = "第几套案例(1、2、3)")
+    private Integer number;
+
+    @ApiModelProperty(notes = "信用证编号")
+    private String docCreditNumber;
+
+    @ApiModelProperty(notes = "承兑日")
+    private Date dueDate;
+
+    @ApiModelProperty(notes = "收款行名址")
+    private String notifyBankNameAndAddress;
+
+    @ApiModelProperty(notes = "实收币种")
+    private String chargingCurrency;
+
+    @ApiModelProperty(notes = "我行名址")
+    private String issBankNameAndAddress;
+
+}
diff --git a/src/main/java/com/sztzjy/bank/entity/dto/RegistrationDTO.java b/src/main/java/com/sztzjy/bank/entity/dto/RegistrationDTO.java
index cf6b84c..26916c8 100644
--- a/src/main/java/com/sztzjy/bank/entity/dto/RegistrationDTO.java
+++ b/src/main/java/com/sztzjy/bank/entity/dto/RegistrationDTO.java
@@ -26,7 +26,7 @@ public class RegistrationDTO {
     @ApiModelProperty(notes = "索汇币种")
     private String currencyForRemittance;
 
-    @ApiModelProperty(notes = "索汇金额:")
+    @ApiModelProperty(notes = "索汇金额")
     private String amountRequestedRemittance;
 
     @ApiModelProperty(notes = "即期")
diff --git a/src/main/java/com/sztzjy/bank/service/ImportletterService.java b/src/main/java/com/sztzjy/bank/service/ImportletterService.java
index 6aeab1e..493477b 100644
--- a/src/main/java/com/sztzjy/bank/service/ImportletterService.java
+++ b/src/main/java/com/sztzjy/bank/service/ImportletterService.java
@@ -1,10 +1,7 @@
 package com.sztzjy.bank.service;
 
 import com.sztzjy.bank.entity.*;
-import com.sztzjy.bank.entity.dto.ApplicationForOpeningDTO;
-import com.sztzjy.bank.entity.dto.BillAdvanceDTO;
-import com.sztzjy.bank.entity.dto.OutwardRemittanceDTO;
-import com.sztzjy.bank.entity.dto.RegistrationDTO;
+import com.sztzjy.bank.entity.dto.*;
 import com.sztzjy.bank.util.ResultEntity;
 import org.springframework.http.HttpStatus;
 
@@ -44,4 +41,5 @@ public interface ImportletterService {
 
     Integer submitPaymentAcceptance(PaymentAcceptance paymentAcceptance);
 
+    AcceptanceDTO getAcceptanceDTO(String userId, Integer number, String module);
 }
diff --git a/src/main/java/com/sztzjy/bank/service/impl/IUpdateScoreInfoImpl.java b/src/main/java/com/sztzjy/bank/service/impl/IUpdateScoreInfoImpl.java
index 4de6f74..44a334e 100644
--- a/src/main/java/com/sztzjy/bank/service/impl/IUpdateScoreInfoImpl.java
+++ b/src/main/java/com/sztzjy/bank/service/impl/IUpdateScoreInfoImpl.java
@@ -2,10 +2,13 @@ package com.sztzjy.bank.service.impl;
 
 import cn.hutool.core.util.IdUtil;
 import com.sztzjy.bank.entity.*;
+import com.sztzjy.bank.entity.dto.StuAcademicRecordDTO;
 import com.sztzjy.bank.mapper.StuGradeManagementMapper;
 import com.sztzjy.bank.mapper.StuUserMapper;
+import com.sztzjy.bank.mapper.TchScoreWeightMapper;
 import com.sztzjy.bank.mapper.TotalNumberInfoMapper;
 import com.sztzjy.bank.service.IUpdateScoreInfo;
+import com.sztzjy.bank.service.StuGradeManagementService;
 import com.sztzjy.bank.util.BigDecimalUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -31,6 +34,10 @@ public class IUpdateScoreInfoImpl implements IUpdateScoreInfo {
     BigDecimalUtils bigDecimalUtils;
     @Autowired
     StuUserMapper stuUserMapper;
+    @Autowired
+    StuGradeManagementService managementService;
+    @Autowired
+    TchScoreWeightMapper scoreWeightMapper;
 
     @Override
     public void UpdateScoreInfo(String userId,String largeModule, String module, Integer errorsNumber, Integer processNumber) {
@@ -95,5 +102,42 @@ public class IUpdateScoreInfoImpl implements IUpdateScoreInfo {
                 gradeManagementMapper.updateByPrimaryKeySelective(stuGradeManagement);
             }
         }
+        //将成绩统计,更新到学生表
+        StuGradeManagementExample managementExample=new StuGradeManagementExample();
+        managementExample.createCriteria().andUserIdEqualTo(userId);
+        List<StuGradeManagement> stuGradeManagements = gradeManagementMapper.selectByExample(managementExample);
+
+
+        //查询权重信息
+        TchScoreWeightExample weightExample=new TchScoreWeightExample();
+        weightExample.createCriteria().andSchoolIdEqualTo(stuUser.getSchoolId());
+        List<TchScoreWeight> tchScoreWeights = scoreWeightMapper.selectByExample(weightExample);
+        if(tchScoreWeights.isEmpty()){
+            TchScoreWeight tchScoreWeight=new TchScoreWeight(stuUser.getSchoolId());
+            tchScoreWeights.add(tchScoreWeight);
+            scoreWeightMapper.insert(tchScoreWeight);
+        }
+
+        TchScoreWeight tchScoreWeight = tchScoreWeights.get(0);
+
+        List<StuAcademicRecordDTO> academicRecordDTO = managementService.getAcademicRecordDTO(stuGradeManagements, tchScoreWeight, userId); //学生成绩统计
+
+
+        double progress=0.0; //进度累加
+        double practiceDuration=0; //练习时长累加
+        BigDecimal practiceResults=BigDecimal.ZERO; //练习成绩平均值累加
+        for (StuAcademicRecordDTO stuAcademicRecordDTO:academicRecordDTO) {
+            progress=progress+stuAcademicRecordDTO.getPracticeProgress();
+
+            practiceDuration=practiceDuration+stuAcademicRecordDTO.getPracticeDuration();
+
+            practiceResults=practiceResults.add(stuAcademicRecordDTO.getScore()); //加权计算后得分
+        }
+
+        stuUser.setTotalScore(practiceResults);
+        stuUser.setPracticeProgress(bigDecimalUtils.div(progress,7,2)); //计算平均值
+        stuUser.setPracticeDuration(practiceDuration);
+
+        stuUserMapper.updateByPrimaryKeySelective(stuUser);
     }
 }
diff --git a/src/main/java/com/sztzjy/bank/service/impl/ImportletterServiceImpl.java b/src/main/java/com/sztzjy/bank/service/impl/ImportletterServiceImpl.java
index 91a5dbf..3e1c16b 100644
--- a/src/main/java/com/sztzjy/bank/service/impl/ImportletterServiceImpl.java
+++ b/src/main/java/com/sztzjy/bank/service/impl/ImportletterServiceImpl.java
@@ -781,6 +781,38 @@ public class ImportletterServiceImpl implements ImportletterService {
         }
     }
 
+    @Override
+    public AcceptanceDTO getAcceptanceDTO(String userId, Integer number, String module) {
+        AcceptanceDTO acceptanceDTO=new AcceptanceDTO(); //封装对象返回
+
+        PaymentAcceptanceExample acceptanceExample=new PaymentAcceptanceExample();
+        acceptanceExample.createCriteria().andUserIdEqualTo(userId).andNumberEqualTo(number).andSubmitStatusEqualTo(1);
+
+        List<PaymentAcceptance> acceptances = paymentAcceptanceMapper.selectByExample(acceptanceExample);
+
+        if(!CollectionUtils.isEmpty(acceptances)){
+            acceptanceDTO=convertUtil.entityToDTO(acceptances.get(0),AcceptanceDTO.class);
+        }
+
+        //查询开立信用证信息
+        OpeningLetterCreditExample creditExample=new OpeningLetterCreditExample();
+        creditExample.createCriteria().andUserIdEqualTo(userId).andNumberEqualTo(number).andSubmitStatusEqualTo(1);
+
+        List<OpeningLetterCredit> openingLetterCredits = letterCreditMapper.selectByExample(creditExample);
+
+        if(!CollectionUtils.isEmpty(openingLetterCredits)){
+            OpeningLetterCredit openingLetterCredit = openingLetterCredits.get(0);
+
+            acceptanceDTO.setDocCreditNumber(openingLetterCredit.getDocCreditNumber());
+            acceptanceDTO.setDueDate(openingLetterCredit.getDueDate());
+            acceptanceDTO.setNotifyBankNameAndAddress(openingLetterCredit.getNotifyBankNameAndAddress());
+            acceptanceDTO.setChargingCurrency(openingLetterCredit.getChargingCurrency());
+            acceptanceDTO.setIssBankNameAndAddress(openingLetterCredit.getIssBankNameAndAddress());
+        }
+
+
+        return acceptanceDTO;
+    }
 
 
     //开证申请计算
diff --git a/src/main/java/com/sztzjy/bank/service/impl/PersonalLoanServiceImpl.java b/src/main/java/com/sztzjy/bank/service/impl/PersonalLoanServiceImpl.java
index 7af052b..c375a87 100644
--- a/src/main/java/com/sztzjy/bank/service/impl/PersonalLoanServiceImpl.java
+++ b/src/main/java/com/sztzjy/bank/service/impl/PersonalLoanServiceImpl.java
@@ -1437,6 +1437,9 @@ public class PersonalLoanServiceImpl implements PersonalLoanService {
                 //计算错误次数
                 postLoanTracking=computePostLoanTracking(postLoanTracking);
 
+                postLoanTracking.setSaveStatus(0);
+
+
                 //更新成绩表
                 updateScoreInfo.UpdateScoreInfo(postLoanTracking.getUserId(),"个人贷款业务","个人消费贷款业务",postLoanTracking.getErrorNumber(),8);
 
diff --git a/src/main/java/com/sztzjy/bank/service/impl/StuGradeManagementServiceImpl.java b/src/main/java/com/sztzjy/bank/service/impl/StuGradeManagementServiceImpl.java
index fbfa831..c219b3e 100644
--- a/src/main/java/com/sztzjy/bank/service/impl/StuGradeManagementServiceImpl.java
+++ b/src/main/java/com/sztzjy/bank/service/impl/StuGradeManagementServiceImpl.java
@@ -118,7 +118,7 @@ public class StuGradeManagementServiceImpl implements StuGradeManagementService
         processExample.createCriteria().andUserIdEqualTo(userId).andLargeModuleEqualTo(module);
         List<OperationProcess> operationProcesses = processMapper.selectByExample(processExample);
         if(operationProcesses.isEmpty()){
-            throw new ServiceException(HttpStatus.ACCEPTED,"重新实训失败,请完成"+module+"下所以任务");
+            throw new ServiceException(HttpStatus.SEE_OTHER,"重新实训失败,请完成"+module+"下所以任务");
         }
         Integer completedStepsNumber = operationProcesses.get(0).getCompletedStepsNumber();
 
@@ -128,7 +128,7 @@ public class StuGradeManagementServiceImpl implements StuGradeManagementService
         List<TotalNumberInfo> totalNumberInfos = numberInfoMapper.selectByExample(numberInfoExample);
 
         if(completedStepsNumber!=totalNumberInfos.get(0).getTotalNumber()){
-            throw new ServiceException(HttpStatus.ACCEPTED,"重新实训失败,请完成"+module+"下所以任务");
+            throw new ServiceException(HttpStatus.SEE_OTHER,"重新实训失败,请完成"+module+"下所以任务");
         }
 
 
diff --git a/src/main/java/com/sztzjy/bank/service/impl/TchSummaryGradesServiceImpl.java b/src/main/java/com/sztzjy/bank/service/impl/TchSummaryGradesServiceImpl.java
index 1ebfed7..ce9ecbe 100644
--- a/src/main/java/com/sztzjy/bank/service/impl/TchSummaryGradesServiceImpl.java
+++ b/src/main/java/com/sztzjy/bank/service/impl/TchSummaryGradesServiceImpl.java
@@ -61,60 +61,6 @@ public class TchSummaryGradesServiceImpl implements TchSummaryGradesService {
 
         List<StuUser> stuUsers = stuUserMapper.selectByExample(stuUserExample);
 
-
-        TchScoreWeightExample weightExample=new TchScoreWeightExample();
-        weightExample.createCriteria().andSchoolIdEqualTo(schoolId);
-        List<TchScoreWeight> tchScoreWeights = scoreWeightMapper.selectByExample(weightExample);
-        if(tchScoreWeights.isEmpty()){
-            TchScoreWeight tchScoreWeight=new TchScoreWeight(schoolId);
-            tchScoreWeights.add(tchScoreWeight);
-            scoreWeightMapper.insert(tchScoreWeight);
-        }
-
-        TchScoreWeight tchScoreWeight = tchScoreWeights.get(0);
-
-        //根据学校ID查询该校所有学生成绩信息
-        StuGradeManagementExample managementExample=new StuGradeManagementExample();
-        managementExample.createCriteria().andSchoolIdEqualTo(schoolId);
-        List<StuGradeManagement> stuGradeManagements = gradeManagementMapper.selectByExample(managementExample);
-
-        // 根据 userId 分组
-        Map<String, List<StuGradeManagement>> groupedByUserId = stuGradeManagements.stream()
-                .collect(Collectors.groupingBy(StuGradeManagement::getUserId));
-
-        for (StuUser stUser: stuUsers) {
-
-            double practiceProgress=0.0; //练习进度
-            double practiceDuration=0; //练习时长
-            BigDecimal practiceResults=BigDecimal.ZERO; //练习成绩
-
-            // 遍历分组后的 Map
-            for(Map.Entry<String, List<StuGradeManagement>> entry : groupedByUserId.entrySet()) {
-
-                if(stUser.getUserId().equals(entry.getKey())){
-                    List<StuAcademicRecordDTO> academicRecord = managementService.getAcademicRecordDTO(entry.getValue(),tchScoreWeight,stUser.getUserId());
-
-                    for (int i = 0; i < academicRecord.size(); i++) {
-                        StuAcademicRecordDTO stuAcademicRecordDTO = academicRecord.get(i);
-                        //练习进度取平均数
-                        practiceProgress=practiceProgress+stuAcademicRecordDTO.getPracticeProgress();
-
-                        //练习时长取累计数
-                        practiceDuration=practiceDuration+stuAcademicRecordDTO.getPracticeDuration();
-
-                        //练习成绩取合计数
-                        practiceResults=practiceResults.add(stuAcademicRecordDTO.getScore());
-                    }
-                }
-            }
-
-
-            //赋值
-            stUser.setPracticeProgress(bigDecimalUtils.div(practiceProgress,7,2));
-            stUser.setPracticeDuration(practiceDuration);
-            stUser.setPracticeResults(practiceResults);
-        }
-
         return PageUtil.pageHelper(stuUsers,index,size);
     }
 
diff --git a/src/main/resources/mappers/PaymentAcceptanceMapper.xml b/src/main/resources/mappers/PaymentAcceptanceMapper.xml
index 3503f87..3572035 100644
--- a/src/main/resources/mappers/PaymentAcceptanceMapper.xml
+++ b/src/main/resources/mappers/PaymentAcceptanceMapper.xml
@@ -8,7 +8,9 @@
     <result column="write_code" jdbcType="VARCHAR" property="writeCode" />
     <result column="telegram_fee_type" jdbcType="VARCHAR" property="telegramFeeType" />
     <result column="acceptance_currency" jdbcType="VARCHAR" property="acceptanceCurrency" />
+    <result column="actual_acceptance" jdbcType="VARCHAR" property="actualAcceptance" />
     <result column="acceptance_amount" jdbcType="VARCHAR" property="acceptanceAmount" />
+    <result column="actual_postage_amount_received" jdbcType="VARCHAR" property="actualPostageAmountReceived" />
     <result column="beneficiary" jdbcType="VARCHAR" property="beneficiary" />
     <result column="ben_settlement_account" jdbcType="VARCHAR" property="benSettlementAccount" />
     <result column="payer_settlement_account" jdbcType="VARCHAR" property="payerSettlementAccount" />
@@ -82,9 +84,9 @@
   </sql>
   <sql id="Base_Column_List">
     id, receiving_bank_code, charging_method, write_code, telegram_fee_type, acceptance_currency, 
-    acceptance_amount, beneficiary, ben_settlement_account, payer_settlement_account, 
-    payer_name, deduction_account, create_time, update_time, save_status, submit_status, 
-    user_id, error_number, number
+    actual_acceptance, acceptance_amount, actual_postage_amount_received, beneficiary, 
+    ben_settlement_account, payer_settlement_account, payer_name, deduction_account, 
+    create_time, update_time, save_status, submit_status, user_id, error_number, number
   </sql>
   <select id="selectByExample" parameterType="com.sztzjy.bank.entity.PaymentAcceptanceExample" resultMap="BaseResultMap">
     select
@@ -119,18 +121,20 @@
   <insert id="insert" parameterType="com.sztzjy.bank.entity.PaymentAcceptance">
     insert into payment_acceptance (id, receiving_bank_code, charging_method, 
       write_code, telegram_fee_type, acceptance_currency, 
-      acceptance_amount, beneficiary, ben_settlement_account, 
-      payer_settlement_account, payer_name, deduction_account, 
-      create_time, update_time, save_status, 
-      submit_status, user_id, error_number, 
-      number)
+      actual_acceptance, acceptance_amount, actual_postage_amount_received, 
+      beneficiary, ben_settlement_account, payer_settlement_account, 
+      payer_name, deduction_account, create_time, 
+      update_time, save_status, submit_status, 
+      user_id, error_number, number
+      )
     values (#{id,jdbcType=VARCHAR}, #{receivingBankCode,jdbcType=VARCHAR}, #{chargingMethod,jdbcType=VARCHAR}, 
       #{writeCode,jdbcType=VARCHAR}, #{telegramFeeType,jdbcType=VARCHAR}, #{acceptanceCurrency,jdbcType=VARCHAR}, 
-      #{acceptanceAmount,jdbcType=VARCHAR}, #{beneficiary,jdbcType=VARCHAR}, #{benSettlementAccount,jdbcType=VARCHAR}, 
-      #{payerSettlementAccount,jdbcType=VARCHAR}, #{payerName,jdbcType=VARCHAR}, #{deductionAccount,jdbcType=VARCHAR}, 
-      #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, #{saveStatus,jdbcType=INTEGER}, 
-      #{submitStatus,jdbcType=INTEGER}, #{userId,jdbcType=VARCHAR}, #{errorNumber,jdbcType=INTEGER}, 
-      #{number,jdbcType=INTEGER})
+      #{actualAcceptance,jdbcType=VARCHAR}, #{acceptanceAmount,jdbcType=VARCHAR}, #{actualPostageAmountReceived,jdbcType=VARCHAR}, 
+      #{beneficiary,jdbcType=VARCHAR}, #{benSettlementAccount,jdbcType=VARCHAR}, #{payerSettlementAccount,jdbcType=VARCHAR}, 
+      #{payerName,jdbcType=VARCHAR}, #{deductionAccount,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, 
+      #{updateTime,jdbcType=TIMESTAMP}, #{saveStatus,jdbcType=INTEGER}, #{submitStatus,jdbcType=INTEGER}, 
+      #{userId,jdbcType=VARCHAR}, #{errorNumber,jdbcType=INTEGER}, #{number,jdbcType=INTEGER}
+      )
   </insert>
   <insert id="insertSelective" parameterType="com.sztzjy.bank.entity.PaymentAcceptance">
     insert into payment_acceptance
@@ -153,9 +157,15 @@
       <if test="acceptanceCurrency != null">
         acceptance_currency,
       </if>
+      <if test="actualAcceptance != null">
+        actual_acceptance,
+      </if>
       <if test="acceptanceAmount != null">
         acceptance_amount,
       </if>
+      <if test="actualPostageAmountReceived != null">
+        actual_postage_amount_received,
+      </if>
       <if test="beneficiary != null">
         beneficiary,
       </if>
@@ -212,9 +222,15 @@
       <if test="acceptanceCurrency != null">
         #{acceptanceCurrency,jdbcType=VARCHAR},
       </if>
+      <if test="actualAcceptance != null">
+        #{actualAcceptance,jdbcType=VARCHAR},
+      </if>
       <if test="acceptanceAmount != null">
         #{acceptanceAmount,jdbcType=VARCHAR},
       </if>
+      <if test="actualPostageAmountReceived != null">
+        #{actualPostageAmountReceived,jdbcType=VARCHAR},
+      </if>
       <if test="beneficiary != null">
         #{beneficiary,jdbcType=VARCHAR},
       </if>
@@ -280,9 +296,15 @@
       <if test="record.acceptanceCurrency != null">
         acceptance_currency = #{record.acceptanceCurrency,jdbcType=VARCHAR},
       </if>
+      <if test="record.actualAcceptance != null">
+        actual_acceptance = #{record.actualAcceptance,jdbcType=VARCHAR},
+      </if>
       <if test="record.acceptanceAmount != null">
         acceptance_amount = #{record.acceptanceAmount,jdbcType=VARCHAR},
       </if>
+      <if test="record.actualPostageAmountReceived != null">
+        actual_postage_amount_received = #{record.actualPostageAmountReceived,jdbcType=VARCHAR},
+      </if>
       <if test="record.beneficiary != null">
         beneficiary = #{record.beneficiary,jdbcType=VARCHAR},
       </if>
@@ -332,7 +354,9 @@
       write_code = #{record.writeCode,jdbcType=VARCHAR},
       telegram_fee_type = #{record.telegramFeeType,jdbcType=VARCHAR},
       acceptance_currency = #{record.acceptanceCurrency,jdbcType=VARCHAR},
+      actual_acceptance = #{record.actualAcceptance,jdbcType=VARCHAR},
       acceptance_amount = #{record.acceptanceAmount,jdbcType=VARCHAR},
+      actual_postage_amount_received = #{record.actualPostageAmountReceived,jdbcType=VARCHAR},
       beneficiary = #{record.beneficiary,jdbcType=VARCHAR},
       ben_settlement_account = #{record.benSettlementAccount,jdbcType=VARCHAR},
       payer_settlement_account = #{record.payerSettlementAccount,jdbcType=VARCHAR},
@@ -367,9 +391,15 @@
       <if test="acceptanceCurrency != null">
         acceptance_currency = #{acceptanceCurrency,jdbcType=VARCHAR},
       </if>
+      <if test="actualAcceptance != null">
+        actual_acceptance = #{actualAcceptance,jdbcType=VARCHAR},
+      </if>
       <if test="acceptanceAmount != null">
         acceptance_amount = #{acceptanceAmount,jdbcType=VARCHAR},
       </if>
+      <if test="actualPostageAmountReceived != null">
+        actual_postage_amount_received = #{actualPostageAmountReceived,jdbcType=VARCHAR},
+      </if>
       <if test="beneficiary != null">
         beneficiary = #{beneficiary,jdbcType=VARCHAR},
       </if>
@@ -416,7 +446,9 @@
       write_code = #{writeCode,jdbcType=VARCHAR},
       telegram_fee_type = #{telegramFeeType,jdbcType=VARCHAR},
       acceptance_currency = #{acceptanceCurrency,jdbcType=VARCHAR},
+      actual_acceptance = #{actualAcceptance,jdbcType=VARCHAR},
       acceptance_amount = #{acceptanceAmount,jdbcType=VARCHAR},
+      actual_postage_amount_received = #{actualPostageAmountReceived,jdbcType=VARCHAR},
       beneficiary = #{beneficiary,jdbcType=VARCHAR},
       ben_settlement_account = #{benSettlementAccount,jdbcType=VARCHAR},
       payer_settlement_account = #{payerSettlementAccount,jdbcType=VARCHAR},