字符串拼接StringBuilder,下一层list的值构造成上层list

字符串拼接

数据来源

image

拼接结果

将上图的数据,拼接成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;

}

posted @ 2022-02-17 08:37  Charles博客  阅读(52)  评论(0编辑  收藏  举报