Commit 6b62a5c3 by wangjian

2025-09-17 wj 整体修改1

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