sgj
2026-03-23 452cf744b08f2148729427fec50b07a4cf0cad31
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
122
123
124
125
126
127
128
package com.fzzy.igds;
 
import com.bstek.dorado.annotation.DataProvider;
import com.bstek.dorado.annotation.DataResolver;
import com.bstek.dorado.annotation.Expose;
import com.bstek.dorado.data.entity.EntityState;
import com.bstek.dorado.data.entity.EntityUtils;
import com.fzzy.common.constant.BizTypeEnum;
import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.constant.OrderRespEnum;
import com.fzzy.igds.domain.Slogan;
import com.fzzy.igds.service.SloganService;
import com.fzzy.igds.utils.ContextUtil;
import com.fzzy.igds.websocket.WebSocketPacket;
import com.fzzy.igds.websocket.WebSocketServer;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.enums.BusinessType;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
 
/**
 * @Description 大屏标语管理
 * @Author CZT
 * @Date 2025/12/18 19:19
 */
@Component
public class SloganPR {
 
    @Resource
    private SloganService sloganService;
 
    /**
     * 查询
     * 
     * sloganPR#loadData
     * 
     * @param
     * @return
     */
    @DataProvider
    public List<Slogan> loadData() {
        return sloganService.listData(null);
    }
    
    /**
     * 保存 sloganPR#saveAll
     * 
     * @return
     */
    @DataResolver
    @Transactional
    public String saveAll(List<Slogan> items) {
        EntityState state;
        Slogan slogan;
        for (Slogan item : items) {
            slogan = new Slogan();
            BeanUtils.copyProperties(item, slogan);
            state = EntityUtils.getState(item);
            if (state == EntityState.NEW) {
                sloganService.saveData(slogan);
            }
            if (state == EntityState.DELETED) {
                sloganService.delData(slogan);
            }
            if (state == EntityState.MODIFIED) {
                sloganService.saveData(slogan);
            }
        }
        return null;
    }
 
    /**
     * 删除数据
     * sloganPR#delData
     *
     * @param data
     * @return
     */
    @Expose
    @Log(title = "大屏标语", businessType = BusinessType.DELETE,bizType = BizTypeEnum.SYS)
    public void delData(Slogan data) {
        Slogan slogan = new Slogan();
        BeanUtils.copyProperties(data, slogan);
        sloganService.delData(slogan);
    }
 
 
    /**
     * sloganPR#push
     * @return
     */
    @Expose
    @Transactional
    public void push(Slogan data) {
 
        //设置全部标语为不启用
        List<Slogan> slogans = sloganService.listData(null);
        if(null != slogans && slogans.size() > 0){
            for (Slogan slogan1 : slogans) {
                slogan1.setStatus(Constant.YN_N);
                sloganService.saveData(slogan1);
            }
        }
 
        //设置当前标语为启用
        Slogan slogan = new Slogan();
        BeanUtils.copyProperties(data, slogan);
        slogan.setStatus(Constant.YN_Y);
        slogan.setPushTime(new Date());
        slogan.setPushUser(ContextUtil.getLoginUserName());
        sloganService.saveData(slogan);
 
        // 通知前端
        WebSocketPacket packet = new WebSocketPacket();
        packet.setBizType("screen");
        packet.setCompanyId(data.getCompanyId());
        packet.setDeptId(data.getCompanyId());
        packet.setBizId("slogan");
        packet.setOrderResp(OrderRespEnum.ORDER_INPROGRESS.getCode());
 
        packet.setData(slogan);
        WebSocketServer.sendByPocket(packet);
    }
}