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.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 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 loadData() { return sloganService.listData(null); } /** * 保存 sloganPR#saveAll * * @return */ @DataResolver @Transactional public String saveAll(List 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 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 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); } }