yangys
2024-04-04 ed4a5236bab800094be4a8378f5098eebe3de6ac
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package com.qianwen.smartman.modules.system.service.impl;
 
import java.util.List;
import java.util.stream.Collectors;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qianwen.core.cache.utils.CacheUtil;
import com.qianwen.core.tool.utils.BeanUtil;
import com.qianwen.smartman.common.constant.ExtCacheConstant;
import com.qianwen.smartman.common.utils.Lambda;
import com.qianwen.smartman.modules.system.dto.MetaObjectTypeDTO;
import com.qianwen.smartman.modules.system.entity.BasCodeRule;
import com.qianwen.smartman.modules.system.entity.MetaObjectType;
import com.qianwen.smartman.modules.system.entity.TableColumn;
import com.qianwen.smartman.modules.system.entity.TableDetail;
import com.qianwen.smartman.modules.system.mapper.MetaObjectTypeMapper;
import com.qianwen.smartman.modules.system.service.IBasCoderuleService;
import com.qianwen.smartman.modules.system.service.IMetaObjectTypeFieldService;
import com.qianwen.smartman.modules.system.service.IMetaObjectTypeService;
import com.qianwen.smartman.modules.system.vo.MetaObjectTypeVO;
 
@Service
 
public class MetaObjectTypeServiceImpl extends ServiceImpl<MetaObjectTypeMapper, MetaObjectType> implements IMetaObjectTypeService {
    @Value("${datasource.database}")
    private String database;
    @Autowired
    private IMetaObjectTypeFieldService fieldService;
    @Autowired
    @Lazy
    private IBasCoderuleService basCoderuleService;
 
 
    @Override // org.springblade.modules.system.service.IMetaObjectTypeService
    public IPage<MetaObjectTypeVO> selectMetaObjectTypePage(IPage<MetaObjectTypeVO> page, MetaObjectTypeVO metaObjectType) {
        return page.setRecords(((MetaObjectTypeMapper) this.baseMapper).selectMetaObjectTypePage(page, metaObjectType));
    }
 
    @Override // org.springblade.modules.system.service.IMetaObjectTypeService
    @Transactional(rollbackFor = {Exception.class})
    public MetaObjectType submitMetaObjectType(MetaObjectTypeDTO metaObjectTypeDTO) {
        MetaObjectType metaObjectType = (MetaObjectType) getById(metaObjectTypeDTO.getObjectId());
        if (metaObjectType == null) {
            metaObjectType = new MetaObjectType();
        }
        BeanUtil.copy(metaObjectTypeDTO, metaObjectType);
        metaObjectType.setFId(metaObjectTypeDTO.getObjectId());
        metaObjectType.setPrimaryKey("id");
        saveOrUpdate(metaObjectType);
        this.fieldService.remove(Lambda.eq((v0) -> {
            return v0.getObjectId();
        }, metaObjectType.getFId()));
        if (metaObjectTypeDTO.getFields() != null) {
            metaObjectTypeDTO.getFields().forEach(field -> {
                this.fieldService.saveOrUpdate(field);
            });
        }
        return metaObjectType;
    }
 
    @Override // org.springblade.modules.system.service.IMetaObjectTypeService
    public List<TableDetail> queryAllTableDetail() {
        List<TableDetail> tableDetails = ((MetaObjectTypeMapper) this.baseMapper).selectAllTables(this.database);
        tableDetails.parallelStream().forEach(item -> {
            List<TableColumn> tableColumns = ((MetaObjectTypeMapper) this.baseMapper).selectTableColumns(this.database, item.getTableName());
            item.setTableColumns(tableColumns);
        });
        return tableDetails;
    }
 
    @Override // org.springblade.modules.system.service.IMetaObjectTypeService
    public List<TableColumn> queryTableCloumns(String tableName) {
        return ((MetaObjectTypeMapper) this.baseMapper).selectTableColumns(this.database, tableName);
    }
 
    @Override // org.springblade.modules.system.service.IMetaObjectTypeService
    @Transactional
    public boolean saveRuleFiled(String objectId, String ruleField, String ruleDictCode) {
        CacheUtil.clear(ExtCacheConstant.CODE_RULE_CACHE, Boolean.FALSE);
        List<BasCodeRule> list = this.basCoderuleService.list(Lambda.eq(BasCodeRule::getBillFormId, objectId).select( BasCodeRule::getId ));
        /*
        List<BasCodeRule> list = this.basCoderuleService.list(Lambda.eq((v0) -> {
            return v0.getBillFormId();
        }, objectId).select((v0) -> {
            return v0.getId();
        }));*/
        if (list.size() > 0) {
            this.basCoderuleService.deleteCoderule(list.stream().map(BasCodeRule::getId).collect(Collectors.toList())); 
            /*
            this.basCoderuleService.deleteCoderule((List) list.stream().map((v0) -> {
                return v0.getId();
            }).collect(Collectors.toList()));*/
        }
        
        return lambdaUpdate().set(MetaObjectType::getRuleField, ruleField).set(MetaObjectType::getRuleDictCode, ruleDictCode)
                  .eq(MetaObjectType::getFId, objectId).update();
        /*
        return ((LambdaUpdateChainWrapper) ((LambdaUpdateChainWrapper) ((LambdaUpdateChainWrapper) lambdaUpdate().set((v0) -> {
            return v0.getRuleField();
        }, ruleField)).set((v0) -> {
            return v0.getRuleDictCode();
        }, ruleDictCode)).eq((v0) -> {
            return v0.getFId();
        }, objectId)).update();*/
    }
}