List<Long> pbqu=xqdXqdPbqyService.selectXqdXqdPbqyByXqdidPbqy(xqdid); for (Long deptid : pbqu) { } for循环中把pbqu拼接成带,的字符串
时间: 2023-12-06 07:44:23 浏览: 23
可以使用Java 8中的Stream API中的`Collectors.joining()`方法来实现:
```
String pbquStr = pbqu.stream()
.map(String::valueOf)
.collect(Collectors.joining(","));
```
这里先将List<Long>转换成Stream,然后使用`map()`方法将每个Long类型的元素转换成字符串类型,最后使用`joining()`方法将所有的字符串用逗号拼接成一个字符串。
相关问题
import java.util.List; import java.util.stream.Collectors; @Service public class EmpService { @Resource private EmpMapper empMapper; @Resource private DeptMapper deptMapper; public List<Emp> listEmp(Emp emp) { List<Emp> empList = empMapper.selectList(Wrappers.<Emp>lambdaQuery() .orderByAsc(Emp::getId) ); if (!empList.isEmpty()) { List<Long> deptIdList = empList.stream().map(Emp::getDeptId).collect(Collectors.toList()); List<Dept> deptList = deptMapper.selectBatchIds(deptIdList); for (Emp empItem : empList) { empItem.setDept(deptList.stream().filter(dept -> dept.getId().equals(empItem.getDeptId())).findAny().orElse(null)); } } return empList; } public Emp getEmpById(String id) { return empMapper.selectById(id); } public int insertEmp(Emp emp) { return empMapper.insert(emp); } public int updateEmp(Emp emp) { return empMapper.updateById(emp); } public int deleteEmp(String id) { return empMapper.deleteById(id); } }
这段代码定义了一个名为"EmpService"的服务类,用于处理员工信息的业务逻辑。
注解包括:
- "@Service":标识该类是一个服务类,用于将其纳入Spring容器进行管理。
属性包括:
- "empMapper":使用了"@Resource"注解,表示该属性会从Spring容器中自动注入一个"EmpMapper"的实例。
- "deptMapper":使用了"@Resource"注解,表示该属性会从Spring容器中自动注入一个"DeptMapper"的实例。
方法包括:
- "listEmp":查询员工信息列表。首先使用"empMapper.selectList()"方法查询所有员工信息,并按照id升序排序。然后通过stream操作将得到的员工列表中的deptId提取出来,再通过deptMapper.selectBatchIds()方法批量查询对应的部门信息。最后,通过循环遍历员工列表,将对应的部门信息设置到每个员工对象中,并返回员工列表。
- "getEmpById":根据员工id查询员工信息。使用"empMapper.selectById()"方法根据id查询员工信息,并返回结果。
- "insertEmp":插入员工信息。使用"empMapper.insert()"方法将员工信息插入到数据库中,并返回插入操作影响的行数。
- "updateEmp":更新员工信息。使用"empMapper.updateById()"方法根据员工id更新员工信息,并返回更新操作影响的行数。
- "deleteEmp":删除员工信息。使用"empMapper.deleteById()"方法根据员工id删除员工信息,并返回删除操作影响的行数。
该服务类提供了对员工信息的增删改查等常用操作方法,通过使用"EmpMapper"和"DeptMapper"来与数据库进行交互。
那么我现在要给这个部门树下加上所对应的巡检岗位,下面代码是加上巡检岗位的方法,请帮我修正一下 private void AddEquipTypeToNode(JzTreeNode item) { ObjectModel InspectionPostCls = ObjectHelper.GetObjectModel("巡检岗位类"); RelationModel postsAndInspection = ObjectHelper.GetRelationModel("部门信息与巡检岗位关系类"); string where = $"attr_{InspectionPostCls.GetAttr("SUB_REL_ID").RelateSelect.EscapeAttrID}='{item.id}'" + $" and {JzDefBasic.IsValid}=1"; List<ObjectModel> InspectionPostClsList = _baseBLL.GetObjListByWhere(InspectionPostCls, where); _baseBLL.GetTableBDataByObjA(postsAndInspection.ClassID, item.id); item.children = new List<JzTreeNode>(); foreach (var obj in InspectionPostClsList) { JzTreeNode node = new JzTreeNode(); node.id = obj.ObjectID; node.parentId = item.id; node.label = obj.GetAttrValue("MC"); item.children.Add(node); } }
根据代码,应该将 `AddEquipTypeToNode` 方法作为 `GetRoute` 方法中 `foreach` 循环的一部分,以便在遍历部门树时逐个添加巡检岗位信息。此外,还需要修改 `AddEquipTypeToNode` 方法的参数,将部门节点的 `id` 作为参数传入,以便查找该部门所对应的巡检岗位。
修改后的 `GetRoute` 方法代码如下:
```csharp
internal object GetRoute(ActionParaModel para)
{
var groupId = para.InputParas["groupId"].ToString();
ObjectModel xtCls = ObjectHelper.GetObjectModel("部门信息类");
string where = $"attr_{xtCls.GetAttr(JzDefAttribute.SubRelID).RelateSelect.EscapeAttrID}='{groupId}' and {JzDefBasic.IsValid}=1";
List<ObjectModel> xtList = _baseBLL.GetObjListByWhere(xtCls, where);
List<JzTreeNode> nodesList = new List<JzTreeNode>();
foreach (var xt in xtList)
{
JzTreeNode node = new JzTreeNode();
node.id = xt.ObjectID;
node.parentId = "0";
node.label = xt.GetAttrValue("BMMC");
AddEquipTypeToNode(node.id, node); // 添加巡检岗位信息
nodesList.Add(node);
}
return nodesList;
}
private void AddEquipTypeToNode(string deptId, JzTreeNode item)
{
ObjectModel InspectionPostCls = ObjectHelper.GetObjectModel("巡检岗位类");
RelationModel postsAndInspection = ObjectHelper.GetRelationModel("部门信息与巡检岗位关系类");
string where = $"attr_{postsAndInspection.GetAttr("OBJA_ID").RelateSelect.EscapeAttrID}='{deptId}' and {JzDefBasic.IsValid}=1";
List<ObjectModel> InspectionPostClsList = _baseBLL.GetObjListByWhere(InspectionPostCls, where);
item.children = new List<JzTreeNode>();
foreach (var obj in InspectionPostClsList)
{
JzTreeNode node = new JzTreeNode();
node.id = obj.ObjectID;
node.parentId = item.id;
node.label = obj.GetAttrValue("MC");
item.children.Add(node);
}
}
```
需要注意的是,以上代码仅为参考,具体实现还需要根据业务逻辑进行调整。