package com.product.server.report.patch; import com.product.common.lang.StringUtils; import com.product.core.dao.BaseDao; import com.product.core.entity.DataTableEntity; import com.product.core.entity.FieldSetEntity; import com.product.core.service.support.AbstractBaseService; import com.product.server.report.config.CmnConst; import org.springframework.stereotype.Component; /** * Copyright © 6c * * @Date: 2022-02-10 14:15 * @Author: 6c * @Description: */ @Component public class PatchService extends AbstractBaseService { /** * product_sys_report_type_attribute表中字段type_uuid修改为一对一 */ public void patch202202100219() { BaseDao baseDao = getBaseDao(); DataTableEntity dte = baseDao.listTable(CmnConst.PRODUCT_SYS_REPORT_TYPE_ATTRIBUTE, "type_uuid like '%,%'"); FieldSetEntity commonDataListConfigFse = baseDao.getFieldSetByFilter(CmnConst.PRODUCT_SYS_REPORT_TYPE_CONFIG, "type_name='普通数据列表'", new Object[]{}, false); if (commonDataListConfigFse == null) { return; } String commonDataListUUID = commonDataListConfigFse.getUUID(); FieldSetEntity fse; String typeUUIDs; DataTableEntity addDte = new DataTableEntity(); FieldSetEntity addFse; String resetTypeUUID; for (int i = 0;i < dte.getRows();i++) { fse = dte.getFieldSetEntity(i); typeUUIDs = fse.getString(CmnConst.TYPE_UUID); if (typeUUIDs.contains(commonDataListUUID)) { resetTypeUUID = commonDataListUUID; } else { resetTypeUUID = typeUUIDs.substring(0, typeUUIDs.indexOf(",")); } for (String singleUUID : typeUUIDs.split(",")) { if (StringUtils.isEmpty(singleUUID) || singleUUID.equals(resetTypeUUID)) { continue; } addFse = fse.clones(); addFse.remove(new String[]{CmnConst.ID, CmnConst.UUID}); addFse.setValue(CmnConst.TYPE_UUID, singleUUID); addDte.addFieldSetEntity(addFse); } fse.setValue(CmnConst.TYPE_UUID, resetTypeUUID); baseDao.saveFieldSetEntity(fse); } baseDao.update(addDte); } }