许鹏程
2023-06-30 3bbfaa3d7d416afbd154576453c8ee9e7e2f8899
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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);
    }
}