This commit is contained in:
lihao 2025-06-21 16:06:48 +08:00
parent 375b4f5245
commit 1d06e025da
1 changed files with 39 additions and 9 deletions

View File

@ -36,6 +36,12 @@ public class MaterialStockAsstsChangedListener implements IBusinessListener {
return;
}
//如果库存信息生产厂商和项目被选中则 更新计划信息生产信息和成本信息
// if(newVO.getFixasst2() == null ){
// newVO.setFixasst2(UFBoolean.valueOf("N"));
// }
// if(newVO.getFixasst4() == null ){
// newVO.setFixasst4(UFBoolean.valueOf("N"));
// }
UFBoolean fixasst2 = newVO.getFixasst2();
UFBoolean fixasst4 = newVO.getFixasst4();
@ -88,27 +94,51 @@ public class MaterialStockAsstsChangedListener implements IBusinessListener {
"FROM " +
" bd_materialcost " +
"WHERE " +
" pk_org = (SELECT PK_COSTREGION FROM org_cr_stockorg WHERE pk_stockorg= ?) or pk_org in (SELECT PK_COSTREGION FROM org_cr_stockstore WHERE pk_stockorg= ?) " +
" (pk_org = (SELECT PK_COSTREGION FROM org_cr_stockorg WHERE pk_stockorg= ?) or pk_org in (SELECT PK_COSTREGION FROM org_cr_stockstore WHERE pk_stockorg= ? ) ) " +
" AND " +
" pk_material = ? ";
SQLParameter param = new SQLParameter();
param.addParam(pk_org);
param.addParam(pk_org);
param.addParam(pk_material);
List list =( (List) this.getBaseDAO().executeQuery(sql, param, new ColumnListProcessor()));
List list = ((List) this.getBaseDAO().executeQuery(sql, param, new ColumnListProcessor()));
if(list.isEmpty()){
return;
}
String pk_materialcost = list.get(0).toString();
if(pk_materialcost == null){
return;
// 构建用于 IN 子句的参数列表
StringBuilder inClause = new StringBuilder();
List<String> paramValues = new ArrayList<>();
for (Object obj : list) {
String pk_materialcost = obj.toString();
if (pk_materialcost == null) {
continue; // 如果 pk_materialcost 为空则跳过当前循环
}
inClause.append("?, ");
paramValues.add(pk_materialcost);
}
//更新计价方式
String update24 = "update bd_materialcostmod set marasst2 = ?,marasst4 = ? where pk_materialcost = ? ";
if (paramValues.isEmpty()) {
return; // 如果没有有效的 pk_materialcost则直接返回
}
// 去掉最后一个多余的逗号
inClause = new StringBuilder(inClause.substring(0, inClause.length() - 2));
// 更新计价方式
String update24 = "UPDATE bd_materialcostmod SET marasst2 = ?, marasst4 = ? WHERE pk_materialcost IN (" + inClause + ")";
SQLParameter param1 = new SQLParameter();
param1.addParam(fixlist.get(0));
// 添加更新参数
param1.addParam(fixlist.get(0)); // 假设 fixlist 已经正确初始化且包含至少两个元素
param1.addParam(fixlist.get(1));
param1.addParam(pk_materialcost);
// 添加 IN 子句的参数
for (String value : paramValues) {
param1.addParam(value);
}
this.getBaseDAO().executeUpdate(update24, param1);
}