Commit 6b62a5c3 by wangjian

2025-09-17 wj 整体修改1

parent c12b2c51
...@@ -127,16 +127,16 @@ public class SjGfjsJcdwkhpjServiceImpl implements ISjGfjsJcdwkhpjService ...@@ -127,16 +127,16 @@ public class SjGfjsJcdwkhpjServiceImpl implements ISjGfjsJcdwkhpjService
} }
@Autowired // @Autowired
private ISjGfjsZdgzService sjGfjsZdgzService; // private ISjGfjsZdgzService sjGfjsZdgzService;
@Autowired // @Autowired
private ISjGfjsDxjczService sjGfjsDxjczService; // private ISjGfjsDxjczService sjGfjsDxjczService;
@Autowired // @Autowired
private ISjGfjsFdgzService sjGfjsFdgzService; // private ISjGfjsFdgzService sjGfjsFdgzService;
// 定义默认的最大值 // // 定义默认的最大值
private static final BigDecimal DEFAULT_MAX = new BigDecimal("99999"); // private static final BigDecimal DEFAULT_MAX = new BigDecimal("99999");
// 定义默认的最小值 // // 定义默认的最小值
private static final BigDecimal DEFAULT_MIN = BigDecimal.ZERO; // private static final BigDecimal DEFAULT_MIN = BigDecimal.ZERO;
@Override @Override
public int pledit(List<SjGfjsZsdwkhpj> list) { public int pledit(List<SjGfjsZsdwkhpj> list) {
...@@ -149,86 +149,86 @@ public class SjGfjsJcdwkhpjServiceImpl implements ISjGfjsJcdwkhpjService ...@@ -149,86 +149,86 @@ public class SjGfjsJcdwkhpjServiceImpl implements ISjGfjsJcdwkhpjService
String nd = sjGfjsZsdwkhpjZb.getNd(); String nd = sjGfjsZsdwkhpjZb.getNd();
// 查询权重系数, // // 查询权重系数,
SjGfjsZdgz sjGfjsZdgz_qz = new SjGfjsZdgz(); // SjGfjsZdgz sjGfjsZdgz_qz = new SjGfjsZdgz();
sjGfjsZdgz_qz.setNd(nd); // sjGfjsZdgz_qz.setNd(nd);
sjGfjsZdgz_qz.setLx("基础"); // sjGfjsZdgz_qz.setLx("基础");
List<SjGfjsZdgz> qzlist = sjGfjsZdgzService.selectSjGfjsZdgzList(sjGfjsZdgz_qz); // List<SjGfjsZdgz> qzlist = sjGfjsZdgzService.selectSjGfjsZdgzList(sjGfjsZdgz_qz);
// 查询基础值, // // 查询基础值,
SjGfjsDxjcz sjGfjsDxjcz = new SjGfjsDxjcz(); // SjGfjsDxjcz sjGfjsDxjcz = new SjGfjsDxjcz();
sjGfjsDxjcz.setNd(nd); // sjGfjsDxjcz.setNd(nd);
List<SjGfjsDxjcz> jczlist = sjGfjsDxjczService.selectSjGfjsDxjczList(sjGfjsDxjcz); // List<SjGfjsDxjcz> jczlist = sjGfjsDxjczService.selectSjGfjsDxjczList(sjGfjsDxjcz);
Map<String, BigDecimal> jczMap = new HashMap<>(); // Map<String, BigDecimal> jczMap = new HashMap<>();
for (SjGfjsDxjcz dxjcz : jczlist) { // for (SjGfjsDxjcz dxjcz : jczlist) {
try { // try {
// 将基础值字符串转换为BigDecimal // // 将基础值字符串转换为BigDecimal
BigDecimal jczValue = new BigDecimal(dxjcz.getJcz()); // BigDecimal jczValue = new BigDecimal(dxjcz.getJcz());
jczMap.put(dxjcz.getJb(), jczValue); // jczMap.put(dxjcz.getJb(), jczValue);
} catch (NumberFormatException e) { // } catch (NumberFormatException e) {
throw new IllegalArgumentException("基础值格式错误,级别:" + dxjcz.getJb() + ",值:" + dxjcz.getJcz(), e); // throw new IllegalArgumentException("基础值格式错误,级别:" + dxjcz.getJb() + ",值:" + dxjcz.getJcz(), e);
} // }
} // }
// 分档规则 // // 分档规则
SjGfjsFdgz sjGfjsFdgz = new SjGfjsFdgz(); // SjGfjsFdgz sjGfjsFdgz = new SjGfjsFdgz();
sjGfjsFdgz.setNd(nd); // sjGfjsFdgz.setNd(nd);
List<SjGfjsFdgz> fdgzlist = sjGfjsFdgzService.selectSjGfjsFdgzList(sjGfjsFdgz); // List<SjGfjsFdgz> fdgzlist = sjGfjsFdgzService.selectSjGfjsFdgzList(sjGfjsFdgz);
//
//
// 计算总得分 // // 计算总得分
BigDecimal totalScore = BigDecimal.ZERO; // BigDecimal totalScore = BigDecimal.ZERO;
for(int i=0;i<qzlist.size();i++){ // for(int i=0;i<qzlist.size();i++){
SjGfjsZdgz qzxsMap = qzlist.get(i); // SjGfjsZdgz qzxsMap = qzlist.get(i);
BigDecimal qzxs = new BigDecimal(qzxsMap.getKhnrfs());// 系数 // BigDecimal qzxs = new BigDecimal(qzxsMap.getKhnrfs());// 系数
String khxd = qzxsMap.getKhxd(); // String khxd = qzxsMap.getKhxd();
//
List<SjGfjsZsdwkhpj> filteredDetails = list.stream().filter(item -> khxd.equals(item.getKhxd())).collect(Collectors.toList()); // List<SjGfjsZsdwkhpj> filteredDetails = list.stream().filter(item -> khxd.equals(item.getKhxd())).collect(Collectors.toList());
//
// 计算小项得分总和 // // 计算小项得分总和
BigDecimal xmTotal = BigDecimal.ZERO; // BigDecimal xmTotal = BigDecimal.ZERO;
int validCount = 0; // int validCount = 0;
for (SjGfjsZsdwkhpj detail : filteredDetails) { // for (SjGfjsZsdwkhpj detail : filteredDetails) {
String khfz = detail.getKhfz(); // 小项ABCD结果 // String khfz = detail.getKhfz(); // 小项ABCD结果
BigDecimal jcz = jczMap.get(khfz); // BigDecimal jcz = jczMap.get(khfz);
xmTotal = xmTotal.add(jcz); // xmTotal = xmTotal.add(jcz);
validCount++; // validCount++;
} // }
// 计算小项平均分(如果没有有效小项,得分为0) // // 计算小项平均分(如果没有有效小项,得分为0)
BigDecimal avgScore = BigDecimal.ZERO; // BigDecimal avgScore = BigDecimal.ZERO;
if (validCount > 0) { // if (validCount > 0) {
avgScore = xmTotal.divide(new BigDecimal(validCount), 2, RoundingMode.HALF_UP); // avgScore = xmTotal.divide(new BigDecimal(validCount), 2, RoundingMode.HALF_UP);
} // }
//
// 计算单项得分并累加 // // 计算单项得分并累加
BigDecimal itemScore = qzxs.multiply(avgScore); // BigDecimal itemScore = qzxs.multiply(avgScore);
totalScore = totalScore.add(itemScore); // totalScore = totalScore.add(itemScore);
} // }
//
// 计算单位分档级别 // // 计算单位分档级别
String fdjb = "未知"; // String fdjb = "未知";
for (SjGfjsFdgz fdgz : fdgzlist) { // for (SjGfjsFdgz fdgz : fdgzlist) {
// 处理最小基础值(null或空字符串视为0) // // 处理最小基础值(null或空字符串视为0)
BigDecimal minJcz = DEFAULT_MIN; // BigDecimal minJcz = DEFAULT_MIN;
String minStr = fdgz.getMinjcz(); // String minStr = fdgz.getMinjcz();
if (minStr != null && !minStr.trim().isEmpty()) { // if (minStr != null && !minStr.trim().isEmpty()) {
minJcz = new BigDecimal(minStr.trim()); // minJcz = new BigDecimal(minStr.trim());
} // }
//
// 处理最大基础值(null或空字符串视为99999) // // 处理最大基础值(null或空字符串视为99999)
BigDecimal maxJcz = DEFAULT_MAX; // BigDecimal maxJcz = DEFAULT_MAX;
String maxStr = fdgz.getMaxjcz(); // String maxStr = fdgz.getMaxjcz();
if (maxStr != null && !maxStr.trim().isEmpty()) { // if (maxStr != null && !maxStr.trim().isEmpty()) {
maxJcz = new BigDecimal(maxStr.trim()); // maxJcz = new BigDecimal(maxStr.trim());
} // }
//
// 检查总分是否在当前分档的范围内(包含边界值) // // 检查总分是否在当前分档的范围内(包含边界值)
// 比较规则:minJcz ≤ totalScore < maxJcz // // 比较规则:minJcz ≤ totalScore < maxJcz
if (totalScore.compareTo(minJcz) >= 0 && totalScore.compareTo(maxJcz) < 0) { // if (totalScore.compareTo(minJcz) >= 0 && totalScore.compareTo(maxJcz) < 0) {
fdjb = fdgz.getJb(); // 返回匹配的级别 // fdjb = fdgz.getJb(); // 返回匹配的级别
} // }
} // }
sjGfjsZsdwkhpjZb.setZdf(totalScore); // sjGfjsZsdwkhpjZb.setZdf(totalScore);
sjGfjsZsdwkhpjZb.setZhdf(totalScore); // sjGfjsZsdwkhpjZb.setZhdf(totalScore);
sjGfjsZsdwkhpjZb.setFdjb(fdjb); // sjGfjsZsdwkhpjZb.setFdjb(fdjb);
//更新主表 //更新主表
sjGfjsZsdwkhpjZbMapper.updateSjGfjsZsdwkhpjZb(sjGfjsZsdwkhpjZb); sjGfjsZsdwkhpjZbMapper.updateSjGfjsZsdwkhpjZb(sjGfjsZsdwkhpjZb);
......
...@@ -134,16 +134,16 @@ public class SjGfjsZsdwkhpjServiceImpl implements ISjGfjsZsdwkhpjService ...@@ -134,16 +134,16 @@ public class SjGfjsZsdwkhpjServiceImpl implements ISjGfjsZsdwkhpjService
} }
@Autowired // @Autowired
private ISjGfjsZdgzService sjGfjsZdgzService; // private ISjGfjsZdgzService sjGfjsZdgzService;
@Autowired // @Autowired
private ISjGfjsDxjczService sjGfjsDxjczService; // private ISjGfjsDxjczService sjGfjsDxjczService;
@Autowired // @Autowired
private ISjGfjsFdgzService sjGfjsFdgzService; // private ISjGfjsFdgzService sjGfjsFdgzService;
// 定义默认的最大值 // // 定义默认的最大值
private static final BigDecimal DEFAULT_MAX = new BigDecimal("99999"); // private static final BigDecimal DEFAULT_MAX = new BigDecimal("99999");
// 定义默认的最小值 // // 定义默认的最小值
private static final BigDecimal DEFAULT_MIN = BigDecimal.ZERO; // private static final BigDecimal DEFAULT_MIN = BigDecimal.ZERO;
@Override @Override
public int pledit(List<SjGfjsZsdwkhpj> list) { public int pledit(List<SjGfjsZsdwkhpj> list) {
// //计算分数 // //计算分数
...@@ -173,86 +173,86 @@ public class SjGfjsZsdwkhpjServiceImpl implements ISjGfjsZsdwkhpjService ...@@ -173,86 +173,86 @@ public class SjGfjsZsdwkhpjServiceImpl implements ISjGfjsZsdwkhpjService
SjGfjsZsdwkhpjZb sjGfjsZsdwkhpjZb = sjGfjsZsdwkhpjZbMapper.selectSjGfjsZsdwkhpjZbById(sjGfjsZsdwkhpj.getZbId()); SjGfjsZsdwkhpjZb sjGfjsZsdwkhpjZb = sjGfjsZsdwkhpjZbMapper.selectSjGfjsZsdwkhpjZbById(sjGfjsZsdwkhpj.getZbId());
String nd = sjGfjsZsdwkhpjZb.getNd(); String nd = sjGfjsZsdwkhpjZb.getNd();
// 查询权重系数, // // 查询权重系数,
SjGfjsZdgz sjGfjsZdgz_qz = new SjGfjsZdgz(); // SjGfjsZdgz sjGfjsZdgz_qz = new SjGfjsZdgz();
sjGfjsZdgz_qz.setNd(nd); // sjGfjsZdgz_qz.setNd(nd);
sjGfjsZdgz_qz.setLx("基础"); // sjGfjsZdgz_qz.setLx("基础");
List<SjGfjsZdgz> qzlist = sjGfjsZdgzService.selectSjGfjsZdgzList(sjGfjsZdgz_qz); // List<SjGfjsZdgz> qzlist = sjGfjsZdgzService.selectSjGfjsZdgzList(sjGfjsZdgz_qz);
// 查询基础值, // // 查询基础值,
SjGfjsDxjcz sjGfjsDxjcz = new SjGfjsDxjcz(); // SjGfjsDxjcz sjGfjsDxjcz = new SjGfjsDxjcz();
sjGfjsDxjcz.setNd(nd); // sjGfjsDxjcz.setNd(nd);
List<SjGfjsDxjcz> jczlist = sjGfjsDxjczService.selectSjGfjsDxjczList(sjGfjsDxjcz); // List<SjGfjsDxjcz> jczlist = sjGfjsDxjczService.selectSjGfjsDxjczList(sjGfjsDxjcz);
Map<String, BigDecimal> jczMap = new HashMap<>(); // Map<String, BigDecimal> jczMap = new HashMap<>();
for (SjGfjsDxjcz dxjcz : jczlist) { // for (SjGfjsDxjcz dxjcz : jczlist) {
try { // try {
// 将基础值字符串转换为BigDecimal // // 将基础值字符串转换为BigDecimal
BigDecimal jczValue = new BigDecimal(dxjcz.getJcz()); // BigDecimal jczValue = new BigDecimal(dxjcz.getJcz());
jczMap.put(dxjcz.getJb(), jczValue); // jczMap.put(dxjcz.getJb(), jczValue);
} catch (NumberFormatException e) { // } catch (NumberFormatException e) {
throw new IllegalArgumentException("基础值格式错误,级别:" + dxjcz.getJb() + ",值:" + dxjcz.getJcz(), e); // throw new IllegalArgumentException("基础值格式错误,级别:" + dxjcz.getJb() + ",值:" + dxjcz.getJcz(), e);
} // }
} // }
// 分档规则 // // 分档规则
SjGfjsFdgz sjGfjsFdgz = new SjGfjsFdgz(); // SjGfjsFdgz sjGfjsFdgz = new SjGfjsFdgz();
sjGfjsFdgz.setNd(nd); // sjGfjsFdgz.setNd(nd);
List<SjGfjsFdgz> fdgzlist = sjGfjsFdgzService.selectSjGfjsFdgzList(sjGfjsFdgz); // List<SjGfjsFdgz> fdgzlist = sjGfjsFdgzService.selectSjGfjsFdgzList(sjGfjsFdgz);
//
//
// 计算总得分 // // 计算总得分
BigDecimal totalScore = BigDecimal.ZERO; // BigDecimal totalScore = BigDecimal.ZERO;
for(int i=0;i<qzlist.size();i++){ // for(int i=0;i<qzlist.size();i++){
SjGfjsZdgz qzxsMap = qzlist.get(i); // SjGfjsZdgz qzxsMap = qzlist.get(i);
BigDecimal qzxs = new BigDecimal(qzxsMap.getKhnrfs());// 系数 // BigDecimal qzxs = new BigDecimal(qzxsMap.getKhnrfs());// 系数
String khxd = qzxsMap.getKhxd(); // String khxd = qzxsMap.getKhxd();
//
List<SjGfjsZsdwkhpj> filteredDetails = list.stream().filter(item -> khxd.equals(item.getKhxd())).collect(Collectors.toList()); // List<SjGfjsZsdwkhpj> filteredDetails = list.stream().filter(item -> khxd.equals(item.getKhxd())).collect(Collectors.toList());
//
// 计算小项得分总和 // // 计算小项得分总和
BigDecimal xmTotal = BigDecimal.ZERO; // BigDecimal xmTotal = BigDecimal.ZERO;
int validCount = 0; // int validCount = 0;
for (SjGfjsZsdwkhpj detail : filteredDetails) { // for (SjGfjsZsdwkhpj detail : filteredDetails) {
String khfz = detail.getKhfz(); // 小项ABCD结果 // String khfz = detail.getKhfz(); // 小项ABCD结果
BigDecimal jcz = jczMap.get(khfz); // BigDecimal jcz = jczMap.get(khfz);
xmTotal = xmTotal.add(jcz); // xmTotal = xmTotal.add(jcz);
validCount++; // validCount++;
} // }
// 计算小项平均分(如果没有有效小项,得分为0) // // 计算小项平均分(如果没有有效小项,得分为0)
BigDecimal avgScore = BigDecimal.ZERO; // BigDecimal avgScore = BigDecimal.ZERO;
if (validCount > 0) { // if (validCount > 0) {
avgScore = xmTotal.divide(new BigDecimal(validCount), 2, RoundingMode.HALF_UP); // avgScore = xmTotal.divide(new BigDecimal(validCount), 2, RoundingMode.HALF_UP);
} // }
//
// 计算单项得分并累加 // // 计算单项得分并累加
BigDecimal itemScore = qzxs.multiply(avgScore); // BigDecimal itemScore = qzxs.multiply(avgScore);
totalScore = totalScore.add(itemScore); // totalScore = totalScore.add(itemScore);
} // }
//
// 计算单位分档级别 // // 计算单位分档级别
String fdjb = "未知"; // String fdjb = "未知";
for (SjGfjsFdgz fdgz : fdgzlist) { // for (SjGfjsFdgz fdgz : fdgzlist) {
// 处理最小基础值(null或空字符串视为0) // // 处理最小基础值(null或空字符串视为0)
BigDecimal minJcz = DEFAULT_MIN; // BigDecimal minJcz = DEFAULT_MIN;
String minStr = fdgz.getMinjcz(); // String minStr = fdgz.getMinjcz();
if (minStr != null && !minStr.trim().isEmpty()) { // if (minStr != null && !minStr.trim().isEmpty()) {
minJcz = new BigDecimal(minStr.trim()); // minJcz = new BigDecimal(minStr.trim());
} // }
//
// 处理最大基础值(null或空字符串视为99999) // // 处理最大基础值(null或空字符串视为99999)
BigDecimal maxJcz = DEFAULT_MAX; // BigDecimal maxJcz = DEFAULT_MAX;
String maxStr = fdgz.getMaxjcz(); // String maxStr = fdgz.getMaxjcz();
if (maxStr != null && !maxStr.trim().isEmpty()) { // if (maxStr != null && !maxStr.trim().isEmpty()) {
maxJcz = new BigDecimal(maxStr.trim()); // maxJcz = new BigDecimal(maxStr.trim());
} // }
//
// 检查总分是否在当前分档的范围内(包含边界值) // // 检查总分是否在当前分档的范围内(包含边界值)
// 比较规则:minJcz ≤ totalScore < maxJcz // // 比较规则:minJcz ≤ totalScore < maxJcz
if (totalScore.compareTo(minJcz) >= 0 && totalScore.compareTo(maxJcz) < 0) { // if (totalScore.compareTo(minJcz) >= 0 && totalScore.compareTo(maxJcz) < 0) {
fdjb = fdgz.getJb(); // 返回匹配的级别 // fdjb = fdgz.getJb(); // 返回匹配的级别
} // }
} // }
sjGfjsZsdwkhpjZb.setZdf(totalScore); // sjGfjsZsdwkhpjZb.setZdf(totalScore);
sjGfjsZsdwkhpjZb.setZhdf(totalScore); // sjGfjsZsdwkhpjZb.setZhdf(totalScore);
sjGfjsZsdwkhpjZb.setFdjb(fdjb); // sjGfjsZsdwkhpjZb.setFdjb(fdjb);
//更新主表 //更新主表
sjGfjsZsdwkhpjZbMapper.updateSjGfjsZsdwkhpjZb(sjGfjsZsdwkhpjZb); sjGfjsZsdwkhpjZbMapper.updateSjGfjsZsdwkhpjZb(sjGfjsZsdwkhpjZb);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment