字符串拼接StringBuilder,下一层list的值构造成上层list
字符串拼接
数据来源
拼接结果
将上图的数据,拼接成materialNames
字段类型
{
"applicationDate": "2022-01-27 15:55:18",
"applicationId": "d62bfc83-865b-4e0c-b2ca-63ef8df13119",
"applicationNumber": "202201270001",
"applicationStatus": "0",
"approvalTime": null,
"approvalUserName": null,
"formMaterialList": [
{
"materialCount": "1",
"materialId": "1482881601523441666",
"materialImg": "http://192.168.0.130:80/uploadImg/2022-01-17/20220117090458165.jpg",
"materialName": "卷尺",
"materialSpecs": "3米",
"materialTotalCount": "631",
"oldMaterialCount": "1"
},
{
"materialCount": "0",
"materialId": "1482882259865591810",
"materialImg": "http://192.168.0.130:80/uploadImg/2022-01-17/20220117090735571.jpg",
"materialName": "撬棍",
"materialSpecs": "3M",
"materialTotalCount": "311",
"oldMaterialCount": "1"
}
],
"materialFlag": "1",
"materialNames": "卷尺:1/1,撬棍:0/1",
"reason": null,
"userName": "管理员"
},
实现代码
if(materialList!=null && !materialList.isEmpty()){
StringBuilder names = new StringBuilder();
for(FormMaterialAppVO materials:materialList){
// 物料名称和数量拼接
String spliceName = materials.getMaterialName()+":"+materials.getMaterialCount()+"/"+materials.getOldMaterialCount();
names.append(spliceName).append(",");
}
if(names.length() > 0){
names.replace(names.length() -1 ,names.length(),"");
}
// 构造返回数据
appVO.setMaterialNames(names.toString());
appVO.setFormMaterialList(materialList);
}
VO类
第一层VO类:ApplicationMaterialsAppVO
中存有属性private List<FormMaterialAppVO> formMaterialList;
,类型是FormMaterialAppVO
的。
1.ApplicationMaterialsAppVO
package com.qs.modules.applicationForm.model.vo;
import com.qs.modules.formMaterial.model.vo.FormMaterialAppVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 获取历史申请单列表(所有)的vo返回类
*
* @author Charles
* @since 2021/11/04
*/
@Data
public class ApplicationMaterialsAppVO {
/**
* 申请单id
*/
@ApiModelProperty(value = "申请单id")
private String applicationId;
/**
* 审批状态:0未审批/1审批通过/2审批驳回
*/
@ApiModelProperty(value = "审批状态")
private String applicationStatus;
/**
* 申请单编号
*/
@ApiModelProperty(value = "申请单编号")
private String applicationNumber;
/**
* 申请人名称
*/
@ApiModelProperty(value = "申请人名称")
private String userName;
/**
* 申请时间
*/
@ApiModelProperty(value = "申请时间")
private String applicationDate;
/**
* 审批人
*/
@ApiModelProperty(value = "审批人")
private String approvalUserName;
/**
* 审批时间
*/
@ApiModelProperty(value = "审批时间")
private String approvalTime;
/**
* 驳回原因
*/
private String reason;
/**
* 此申请单是否还有物料的标记:0即无物料、1即有物料
*/
@ApiModelProperty(value = "此申请单是否还有物料的标记:0即无物料、1即有物料")
private String materialFlag;
/**
* 物料名称拼接
*/
@ApiModelProperty(value = "物料名称拼接")
private String materialNames;
/**
* 申请的物料集合
*/
private List<FormMaterialAppVO> formMaterialList;
}
2.FormMaterialAppVO
package com.qs.modules.formMaterial.model.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 返回给安卓端的申请单对应物料vo实体类
*
* @author Charles
* @since 2021/11/04
*/
@Data
public class FormMaterialAppVO {
/**
* 物料id
*/
@ApiModelProperty(value = "申请物料的id")
private String materialId;
/**
* 物料名称
*/
@ApiModelProperty(value = "物料名称")
private String materialName;
/**
* 剩余的物料数量
* remainingCount
*/
@ApiModelProperty(value = "物料数量")
private String materialCount;
/**
* 原申请物料数量
* materialCount
*/
@ApiModelProperty(value = "原申请物料数量")
private String oldMaterialCount;
/**
* 物料图片
*/
@ApiModelProperty(value = "物料图片(绝对路径)")
private String materialImg;
/**
* 物料总数量
*/
private String materialTotalCount;
/**
* 物料规格
*/
private String materialSpecs;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效