干燥机配套车间生产管理系统/云平台服务端
bsw215583320
2024-04-16 c2fccb01b972176dc3da5a497b5e904025e9e98d
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
package org.jeecg.modules.demo.online;
 
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.vo.DictModel;
import org.jeecg.common.util.oConvertUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 * Online表单开发 demo 示例
 *
 * @author sunjianlei
 * @date 2021-12-16
 */
@Slf4j
@RestController("onlCgformDemoController")
@RequestMapping("/demo/online/cgform")
public class OnlCgformDemoController {
 
    /**
     * Online表单 http 增强,list增强示例
     * @param params
     * @return
     */
    @PostMapping("/enhanceJavaListHttp")
    public Result<?> enhanceJavaListHttp(@RequestBody JSONObject params) {
        log.info(" --- params:" + params.toJSONString());
        JSONArray dataList = params.getJSONArray("dataList");
        List<DictModel> dict = virtualDictData();
        for (int i = 0; i < dataList.size(); i++) {
            JSONObject record = dataList.getJSONObject(i);
            String province = record.getString("province");
            if (province == null) {
                continue;
            }
            String text = dict.stream()
                    .filter(p -> province.equals(p.getValue()))
                    .map(DictModel::getText)
                    .findAny()
                    .orElse(province);
            record.put("province", text);
        }
        Result<?> res = Result.OK(dataList);
        res.setCode(1);
        return res;
    }
 
    /**
     * 模拟字典数据
     *
     * @return
     */
    private List<DictModel> virtualDictData() {
        List<DictModel> dict = new ArrayList<>();
        dict.add(new DictModel("bj", "北京"));
        dict.add(new DictModel("sd", "山东"));
        dict.add(new DictModel("ah", "安徽"));
        return dict;
    }
 
 
    /**
     * Online表单 http 增强,add、edit增强示例
     * @param params
     * @return
     */
    @PostMapping("/enhanceJavaHttp")
    public Result<?> enhanceJavaHttp(@RequestBody JSONObject params) {
        log.info(" --- params:" + params.toJSONString());
        String tableName = params.getString("tableName");
        JSONObject record = params.getJSONObject("record");
        /*
         * 业务场景一: 获取提交表单数据,进行其他业务关联操作
         * (比如:根据入库单,同步更改库存)
         */
        log.info(" --- tableName:" + tableName);
        log.info(" --- 行数据:" + record.toJSONString());
        /*
         * 业务场景二: 保存数据之前进行数据的校验
         * 直接返回错误状态即可
         */
        String phone = record.getString("phone");
        if (oConvertUtils.isEmpty(phone)) {
            return Result.error("手机号不能为空!");
        }
        /*
         * 业务场景三: 保存数据之对数据的处理
         * 直接操作 record 即可
         */
        record.put("phone", "010-" + phone);
 
        /* 其他业务场景自行实现 */
 
        // 返回场景一: 不对 record 做任何修改的情况下,可以直接返回 code,
        // 返回 0 = 丢弃当前数据
        // 返回 1 = 新增当前数据
        // 返回 2 = 修改当前数据 TODO(?)存疑
//         return Result.OK(1);
 
        // 返回场景二: 需要对 record 做修改的情况下,需要返回一个JSONObject对象(或者Map也行)
        JSONObject res = new JSONObject();
        res.put("code", 1);
        // 将 record 返回以进行修改
        res.put("record", record);
        // TODO 不要 code 的概念
        return Result.OK(res);
    }
 
}