kimi42345
2020-03-29 57c62dd3e7d398e253c2db549b819d020040b1a5
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
114
115
116
117
118
119
120
121
package com.highdatas.mdm.controller;
 
 
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.highdatas.mdm.entity.Maintain;
import com.highdatas.mdm.entity.MaintainField;
import com.highdatas.mdm.entity.MenuMapping;
import com.highdatas.mdm.mapper.TableInfoMapper;
import com.highdatas.mdm.pojo.CodeMsg;
import com.highdatas.mdm.pojo.Result;
import com.highdatas.mdm.service.IMaintainFieldService;
import com.highdatas.mdm.service.IMaintainService;
import com.highdatas.mdm.service.IMenuMappingService;
import com.highdatas.mdm.service.ISysFieldService;
import com.highdatas.mdm.util.Constant;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
 
import java.text.MessageFormat;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
 
/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author kimi
 * @since 2020-03-06
 */
@RestController
@RequestMapping("/maintainField")
public class MaintainFieldController {
    @Autowired
    IMaintainService maintainService;
    @Autowired
    IMaintainFieldService maintainFieldService;
    @Autowired
    ISysFieldService fieldService;
    @Autowired
    TableInfoMapper tableInfoMapper;
    @Autowired
    IMenuMappingService menuMappingService;
 
    @RequestMapping(value = "/getMaintainListByMenu/{menuId}", method = RequestMethod.GET)
    public Result getMaintainListByTable(@PathVariable String menuId)  {
        MenuMapping menuMapping = menuMappingService.selectOne(new EntityWrapper<MenuMapping>().eq("menu_id", menuId).orderBy("create_time"));
        if (menuMapping == null){
            return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED);
        }
        String tableName = menuMapping.getTableName();
 
        JSONArray array = maintainFieldService.getMaintainListByTable(tableName);
        return Result.success(array);
    }
 
    @RequestMapping(value = "/getMaintainListByMaintainField/{id}", method = RequestMethod.GET)
    public Result getMaintainListByMaintainField(@PathVariable String id, @RequestParam String tableName)  {
        List<Maintain> maintainList = maintainFieldService.getMaintainListByMaintainField(id, tableName);
        return Result.success(maintainList);
    }
 
    @RequestMapping(value = "/getMaintainListByTable/{tableName}", method = RequestMethod.GET)
    public Result deleteModel(@PathVariable String tableName)  {
        List<MaintainField> maintainFieldList = maintainFieldService.selectList(new EntityWrapper<MaintainField>().eq("table_name", tableName).orderBy("order_no"));
        int preOrderNo = -1;
        HashMap<String, List<Maintain>> resultMap = new HashMap<>();
        if (maintainFieldList.size() == 0) {
            List<Maintain> maintainList = maintainService.selectList(new EntityWrapper<Maintain>().orderBy("order_no"));
            resultMap.put(Constant.Default, maintainList);
            return Result.success(resultMap);
        }
        for (MaintainField maintainField : maintainFieldList) {
            String maintainId = maintainField.getMaintainId();
            if (StringUtils.isEmpty(maintainId)) {
                continue;
            }
            Maintain maintain = maintainService.selectById(maintainId);
            if (maintain == null) {
                continue;
            }
            Integer orderNo = maintain.getOrderNo();
            List<Maintain> maintainList = maintainService.selectList(new EntityWrapper<Maintain>().ge("order_no", preOrderNo).le("order_no", orderNo));
            resultMap.put(maintainField.getId(), maintainList);
            preOrderNo = orderNo;
        }
        Set<String> keySet = resultMap.keySet();
        JSONArray array = new JSONArray();
        for (String s : keySet) {
            List<Maintain> maintainList = resultMap.get(s);
            Maintain max = maintainList.stream().max(new Comparator<Maintain>() {
                @Override
                public int compare(Maintain o1, Maintain o2) {
                    return o1.getOrderNo() - o2.getOrderNo();
                }
            }).get();
            Maintain min = maintainList.stream().min(new Comparator<Maintain>() {
                @Override
                public int compare(Maintain o1, Maintain o2) {
                    return o1.getOrderNo() - o2.getOrderNo();
                }
            }).get();
            JSONObject object = new JSONObject();
            object.fluentPut("maintainFieldId", s);
            object.fluentPut("version", MessageFormat.format(Constant.extent, min.getVersion(), max.getVersion()));
 
            array.add(object);
        }
        return Result.success(array);
    }
 
 
 
 
 
}