From 728e4019e110afeb1b399f5964799589cea90d4a Mon Sep 17 00:00:00 2001 From: xia Date: Wed, 9 Mar 2022 13:19:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=8F=91=E5=B8=83=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/modules/release/domain/Notice.java | 60 +++++++ .../modules/release/domain/NoticeDevice.java | 30 ++++ .../modules/release/domain/ReleaseDevice.java | 30 ++++ .../modules/release/domain/ReleaseList.java | 6 +- .../release/domain/ReleaseMaterial.java | 4 + .../web/modules/release/dto/NoticeDTO.java | 25 +++ .../web/modules/release/dto/ReleaseDTO.java | 28 ++++ .../modules/release/dto/ReleaseDeviceDTO.java | 16 ++ .../release/dto/ReleaseMaterialDTO.java | 19 +++ .../repository/NoticeDeviceRepository.java | 26 +++ .../release/repository/NoticeRepository.java | 22 +++ .../repository/ReleaseDeviceRepository.java | 16 ++ .../repository/ReleaseListRepository.java | 21 ++- .../release/rest/ReleaseListController.java | 60 ++++++- .../release/service/ReleaseListService.java | 18 ++- .../service/impl/ReleaseListServiceImpl.java | 149 +++++++++++++++++- .../release/vo/NoticeDeviceDetailsVO.java | 18 +++ .../modules/release/vo/NoticeDeviceVO.java | 16 ++ .../web/modules/release/vo/NoticeVO.java | 17 ++ 19 files changed, 563 insertions(+), 18 deletions(-) create mode 100644 system/src/main/java/com/canvas/web/modules/release/domain/Notice.java create mode 100644 system/src/main/java/com/canvas/web/modules/release/domain/NoticeDevice.java create mode 100644 system/src/main/java/com/canvas/web/modules/release/domain/ReleaseDevice.java create mode 100644 system/src/main/java/com/canvas/web/modules/release/dto/NoticeDTO.java create mode 100644 system/src/main/java/com/canvas/web/modules/release/dto/ReleaseDTO.java create mode 100644 system/src/main/java/com/canvas/web/modules/release/dto/ReleaseDeviceDTO.java create mode 100644 system/src/main/java/com/canvas/web/modules/release/dto/ReleaseMaterialDTO.java create mode 100644 system/src/main/java/com/canvas/web/modules/release/repository/NoticeDeviceRepository.java create mode 100644 system/src/main/java/com/canvas/web/modules/release/repository/NoticeRepository.java create mode 100644 system/src/main/java/com/canvas/web/modules/release/repository/ReleaseDeviceRepository.java create mode 100644 system/src/main/java/com/canvas/web/modules/release/vo/NoticeDeviceDetailsVO.java create mode 100644 system/src/main/java/com/canvas/web/modules/release/vo/NoticeDeviceVO.java create mode 100644 system/src/main/java/com/canvas/web/modules/release/vo/NoticeVO.java diff --git a/system/src/main/java/com/canvas/web/modules/release/domain/Notice.java b/system/src/main/java/com/canvas/web/modules/release/domain/Notice.java new file mode 100644 index 0000000..158882a --- /dev/null +++ b/system/src/main/java/com/canvas/web/modules/release/domain/Notice.java @@ -0,0 +1,60 @@ +package com.canvas.web.modules.release.domain; + +import com.canvas.web.base.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import org.hibernate.annotations.GenericGenerator; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@Table(name = "notice") +public class Notice extends BaseEntity implements Serializable { + + @Id + @Column(name = "id") + @GeneratedValue(generator = "idGenerator") + @GenericGenerator(name = "idGenerator", strategy = "uuid") + private String id; + + @Column(name = "context") + @ApiModelProperty(value = "文本内容") + private String context; + + @Column(name = "context_color") + @ApiModelProperty(value = "文本颜色") + private String contextColor; + + @Column(name = "context_size") + @ApiModelProperty(value = "文本大小") + private Integer contextSize; + + @Column(name = "context_position") + @ApiModelProperty(value = "文本位子") + private Integer contextPosition; + + @Column(name = "context_speed") + @ApiModelProperty(value = "滚动速度") + private Integer contextSpeed; + + @Column(name = "orga_id") + @ApiModelProperty(value = "机构id") + private String orgaId; + + @Column(name = "notice_device") + @ApiModelProperty(value = "发布机器") + private Integer noticeDevice; + + @Column(name = "is_state") + @ApiModelProperty(value = "状态") + private Integer isState; + + @Column(name = "is_del") + @ApiModelProperty(value = "是否删除") + private Boolean isDel; + +} diff --git a/system/src/main/java/com/canvas/web/modules/release/domain/NoticeDevice.java b/system/src/main/java/com/canvas/web/modules/release/domain/NoticeDevice.java new file mode 100644 index 0000000..6c21dc4 --- /dev/null +++ b/system/src/main/java/com/canvas/web/modules/release/domain/NoticeDevice.java @@ -0,0 +1,30 @@ +package com.canvas.web.modules.release.domain; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import org.hibernate.annotations.GenericGenerator; + +import javax.persistence.*; + +@Getter +@Setter +@Entity +@Table(name = "notice_device") +public class NoticeDevice { + + @Id + @Column(name = "id") + @GeneratedValue(generator = "idGenerator") + @GenericGenerator(name = "idGenerator", strategy = "uuid") + private String id; + + @Column(name = "notice_id") + @ApiModelProperty(value = "通知id") + private String noticeId; + + @Column(name = "notice_id") + @ApiModelProperty(value = "设备id") + private String deviceId; + +} diff --git a/system/src/main/java/com/canvas/web/modules/release/domain/ReleaseDevice.java b/system/src/main/java/com/canvas/web/modules/release/domain/ReleaseDevice.java new file mode 100644 index 0000000..cebcb5b --- /dev/null +++ b/system/src/main/java/com/canvas/web/modules/release/domain/ReleaseDevice.java @@ -0,0 +1,30 @@ +package com.canvas.web.modules.release.domain; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import org.hibernate.annotations.GenericGenerator; + +import javax.persistence.*; + +@Getter +@Setter +@Entity +@Table(name = "release_device") +public class ReleaseDevice { + + @Id + @Column(name = "id") + @GeneratedValue(generator = "idGenerator") + @GenericGenerator(name = "idGenerator", strategy = "uuid") + private String id; + + @Column(name = "release_id") + @ApiModelProperty(value = "发布id") + private String releaseId; + + @Column(name = "device_id") + @ApiModelProperty(value = "设备id") + private String deviceId; + +} diff --git a/system/src/main/java/com/canvas/web/modules/release/domain/ReleaseList.java b/system/src/main/java/com/canvas/web/modules/release/domain/ReleaseList.java index d6b06f5..796eea5 100644 --- a/system/src/main/java/com/canvas/web/modules/release/domain/ReleaseList.java +++ b/system/src/main/java/com/canvas/web/modules/release/domain/ReleaseList.java @@ -24,7 +24,7 @@ public class ReleaseList extends BaseEntity implements Serializable { @Column(name = "relaase_name") @ApiModelProperty(value = "发布名称") - private Integer relaaseName; + private String relaaseName; @Column(name = "release_type") @ApiModelProperty(value = "发布类型") @@ -54,6 +54,10 @@ public class ReleaseList extends BaseEntity implements Serializable { @ApiModelProperty(value = "发布设备 1.全部 2.部分") private Integer releaseDevice; + @Column(name = "orga_id") + @ApiModelProperty(value = "机构id") + private String orgaId; + @Column(name = "is_state") @ApiModelProperty(value = "状态") private Integer isState; diff --git a/system/src/main/java/com/canvas/web/modules/release/domain/ReleaseMaterial.java b/system/src/main/java/com/canvas/web/modules/release/domain/ReleaseMaterial.java index 9b1cd37..5012c38 100644 --- a/system/src/main/java/com/canvas/web/modules/release/domain/ReleaseMaterial.java +++ b/system/src/main/java/com/canvas/web/modules/release/domain/ReleaseMaterial.java @@ -33,6 +33,10 @@ public class ReleaseMaterial extends BaseEntity implements Serializable { @ApiModelProperty(value = "时长(s)") private Integer duration; + @Column(name = "ranking") + @ApiModelProperty(value = "排行") + private Integer ranking; + @Column(name = "effect") @ApiModelProperty(value = "切换动效") private Integer effect; diff --git a/system/src/main/java/com/canvas/web/modules/release/dto/NoticeDTO.java b/system/src/main/java/com/canvas/web/modules/release/dto/NoticeDTO.java new file mode 100644 index 0000000..10a1bee --- /dev/null +++ b/system/src/main/java/com/canvas/web/modules/release/dto/NoticeDTO.java @@ -0,0 +1,25 @@ +package com.canvas.web.modules.release.dto; + +import com.canvas.web.modules.release.domain.NoticeDevice; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +public class NoticeDTO { + private String noticeId; + private String context; + private String contextColor; + private Integer contextSize; + private String contextPosition; + private String contextSpeed; + private String orgaId; + private Integer noticeDevice; + private String createBy; + private String updateBy; + private Integer isState; + private Boolean isDel; + List noticeDevices; +} diff --git a/system/src/main/java/com/canvas/web/modules/release/dto/ReleaseDTO.java b/system/src/main/java/com/canvas/web/modules/release/dto/ReleaseDTO.java new file mode 100644 index 0000000..3a22b6d --- /dev/null +++ b/system/src/main/java/com/canvas/web/modules/release/dto/ReleaseDTO.java @@ -0,0 +1,28 @@ +package com.canvas.web.modules.release.dto; + +import lombok.Getter; +import lombok.Setter; + +import java.sql.Timestamp; +import java.util.List; + +@Getter +@Setter +public class ReleaseDTO { + + private String releaseId; + private String relaaseName; + private Integer releaseType; + private Timestamp releaseStart; + private Timestamp releaseEnd; + private Timestamp actualEnd; + private Integer releaseCycle; + private Boolean isTopping; + private Integer releaseDevice; + private String orgaId; + private Integer isState; + private Boolean isDel; + private List releaseMaterialDTOs; + private List releaseDeviceDTOs; + +} diff --git a/system/src/main/java/com/canvas/web/modules/release/dto/ReleaseDeviceDTO.java b/system/src/main/java/com/canvas/web/modules/release/dto/ReleaseDeviceDTO.java new file mode 100644 index 0000000..edfacc1 --- /dev/null +++ b/system/src/main/java/com/canvas/web/modules/release/dto/ReleaseDeviceDTO.java @@ -0,0 +1,16 @@ +package com.canvas.web.modules.release.dto; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class ReleaseDeviceDTO { + + private String rdId; + private String releaseId; + private String deviceId; + private String deviceName; + +} + diff --git a/system/src/main/java/com/canvas/web/modules/release/dto/ReleaseMaterialDTO.java b/system/src/main/java/com/canvas/web/modules/release/dto/ReleaseMaterialDTO.java new file mode 100644 index 0000000..7cf3e7a --- /dev/null +++ b/system/src/main/java/com/canvas/web/modules/release/dto/ReleaseMaterialDTO.java @@ -0,0 +1,19 @@ +package com.canvas.web.modules.release.dto; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class ReleaseMaterialDTO { + + private String rmId; + private String releaseId; + private String materialId; + private Integer duration; + private Integer effect; + private Integer ranking; + private String materialName; + private String imgPath; + +} diff --git a/system/src/main/java/com/canvas/web/modules/release/repository/NoticeDeviceRepository.java b/system/src/main/java/com/canvas/web/modules/release/repository/NoticeDeviceRepository.java new file mode 100644 index 0000000..372d9c7 --- /dev/null +++ b/system/src/main/java/com/canvas/web/modules/release/repository/NoticeDeviceRepository.java @@ -0,0 +1,26 @@ +package com.canvas.web.modules.release.repository; + +import com.canvas.web.modules.release.domain.NoticeDevice; +import com.canvas.web.modules.release.vo.NoticeDeviceDetailsVO; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Map; + +public interface NoticeDeviceRepository extends JpaRepository { + + @Query(nativeQuery = true, + value = "select nd.id as ndId,nd.notice_id as noticeId,nd.device_id as deviceId,d.device_name as deviceName " + + "from notice_device nd inner join device on nd.device_id = d.id where nd.notice_id = ?1") + List findByIdToDevice(String noticeId); + + @Transactional(rollbackFor = Exception.class) + @Modifying(clearAutomatically = true) + void deleteByNoticeId(String noticeId); + +} diff --git a/system/src/main/java/com/canvas/web/modules/release/repository/NoticeRepository.java b/system/src/main/java/com/canvas/web/modules/release/repository/NoticeRepository.java new file mode 100644 index 0000000..f411569 --- /dev/null +++ b/system/src/main/java/com/canvas/web/modules/release/repository/NoticeRepository.java @@ -0,0 +1,22 @@ +package com.canvas.web.modules.release.repository; + +import com.canvas.web.modules.release.domain.Notice; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Map; + +public interface NoticeRepository extends JpaRepository { + + @Query(nativeQuery = true, + value = "select n.id as noticeId,n.context as context,n.create_time as createTime,n.create_by as createBy," + + "su.avatar_name as createrName, n.is_state as isState from notice n inner join sys_user su on n.create_by = su.id " + + "where n.orga_id = ?2 " + + "and n.context like %?1% ") + Page> getUrgentNoticeList(String noticeName,String orgaId, Pageable page); + +} diff --git a/system/src/main/java/com/canvas/web/modules/release/repository/ReleaseDeviceRepository.java b/system/src/main/java/com/canvas/web/modules/release/repository/ReleaseDeviceRepository.java new file mode 100644 index 0000000..58ce9f4 --- /dev/null +++ b/system/src/main/java/com/canvas/web/modules/release/repository/ReleaseDeviceRepository.java @@ -0,0 +1,16 @@ +package com.canvas.web.modules.release.repository; + +import com.canvas.web.modules.release.domain.ReleaseDevice; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Map; + +public interface ReleaseDeviceRepository extends JpaRepository { + + @Transactional(rollbackFor = Exception.class) + @Modifying(clearAutomatically = true) + void deleteByReleaseId(String releaseId); + +} diff --git a/system/src/main/java/com/canvas/web/modules/release/repository/ReleaseListRepository.java b/system/src/main/java/com/canvas/web/modules/release/repository/ReleaseListRepository.java index ccd4c2a..30f4460 100644 --- a/system/src/main/java/com/canvas/web/modules/release/repository/ReleaseListRepository.java +++ b/system/src/main/java/com/canvas/web/modules/release/repository/ReleaseListRepository.java @@ -15,12 +15,25 @@ public interface ReleaseListRepository extends JpaRepository> getReleaseList(String releaseName, Pageable page); + "and rl.orga_id = ?2 and if(?1 is null,1=1,rl.relaase_name like %?1% )") + Page> getReleaseList(String releaseName,String orgaId, Pageable page); + + @Query(nativeQuery = true, + value = "select rl.id as releaseId,rl.relaase_name as relaaseName,rl.release_start as releaseStart,rl.release_end as releaseEnd," + + "rl.release_type as releaseType,rl.actual_end as actualEnd,rl.is_state as isState,su.nick_name as nickName," + + "rl.release_device as releaseDevice,rl.is_topping as isTopping,rl.is_del as isDel,rl.create_time as createTime,rl.update_time as updateTime," + + "(select group_concat(d.device_name) from device d inner join release_device rd on d.id = rd.device_id inner join release_list inrl " + + "on rd.release_id = inrl.id where rl.is_del = false and rl.is_state = 1 and d.orga_id = ?2 and inrl.id = rl.id) as bindingDevice," + + "(select ml.img_path from material ml inner join release_material rm on ml.id = rm.material_id inner join release_list inrl2 " + + "on rm.release_id = inrl2.id where rl.is_del = false and rl.is_state = 1 and ml.orga_id = ?2 and inrl2.id = rl.id order by ml.ranking asc limit 0,1) as releaseFirstImg " + + "from release_list rl inner join sys_user su on rl.create_by = su.id " + + "where rl.is_del = false and (rl.is_state != 1 or rl.release_end >= now() or rl.actual_end >= now()) " + + "and rl.orga_id = ?2 and if(?1 is null,1=1,rl.relaase_name like %?1% )") + Page> getReleaseHistoryList(String releaseName,String orgaId, Pageable page); } diff --git a/system/src/main/java/com/canvas/web/modules/release/rest/ReleaseListController.java b/system/src/main/java/com/canvas/web/modules/release/rest/ReleaseListController.java index 5fca4dd..3744417 100644 --- a/system/src/main/java/com/canvas/web/modules/release/rest/ReleaseListController.java +++ b/system/src/main/java/com/canvas/web/modules/release/rest/ReleaseListController.java @@ -1,18 +1,22 @@ package com.canvas.web.modules.release.rest; import com.canvas.web.modules.material.criteria.ThemeQueryCriteria; -import com.canvas.web.modules.material.vo.ThemeVO; +import com.canvas.web.modules.release.domain.Notice; +import com.canvas.web.modules.release.dto.NoticeDTO; +import com.canvas.web.modules.release.dto.ReleaseDTO; import com.canvas.web.modules.release.service.ReleaseListService; +import com.canvas.web.modules.release.vo.NoticeDeviceVO; +import com.canvas.web.modules.release.vo.NoticeVO; import com.canvas.web.modules.release.vo.ReleaseListVO; import com.canvas.web.modules.utils.Response; import com.canvas.web.modules.utils.ResultUtils; +import com.canvas.web.modules.utils.enums.ResponseEnum; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Pageable; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -24,13 +28,55 @@ public class ReleaseListController { ReleaseListService releaseListService; - //发布 @ApiOperation("发布列表") @GetMapping("/getReleaseList") public Response>> getReleaseList( - String releaseName, Pageable page + String releaseName,String orgaId, Pageable page ){ - return Response.success(releaseListService.getReleaseList(releaseName,page)); + return Response.success(releaseListService.getReleaseList(releaseName,orgaId,page)); } + @ApiOperation("编辑发布信息") + @PostMapping("/saveRelease") + public Response saveRelease( + @Validated @RequestBody ReleaseDTO dto + ){ + releaseListService.edit(dto); + return Response.success(dto.getReleaseId() == null ? ResponseEnum.CREATED : ResponseEnum.UPDATE_SUCCESS); + } + + @ApiOperation("发布历史列表") + @GetMapping("/getReleaseHistoryList") + public Response>> getReleaseHistoryList( + String releaseName,String orgaId, Pageable page + ){ + return Response.success(releaseListService.getReleaseHistoryList(releaseName,orgaId,page)); + } + + @ApiOperation("紧急通知列表") + @GetMapping("/getUrgentNoticeList") + public Response>> getUrgentNoticeList( + String noticeName,String orgaId, Pageable page + ){ + return Response.success(releaseListService.getUrgentNoticeList(noticeName,orgaId,page)); + } + + @ApiOperation("根据id查询紧急通知") + @GetMapping("/getNoticeById") + public Response getNoticeById( + String noticeId + ){ + return Response.success(releaseListService.getNoticeById(noticeId)); + } + + @ApiOperation("编辑紧急通知") + @PostMapping("/editNotice") + public Response editNotice( + @Validated @RequestBody NoticeDTO dto + ){ + releaseListService.editNotice(dto); + return Response.success(dto.getNoticeId() == null ? ResponseEnum.CREATED : ResponseEnum.UPDATE_SUCCESS); + } + + } diff --git a/system/src/main/java/com/canvas/web/modules/release/service/ReleaseListService.java b/system/src/main/java/com/canvas/web/modules/release/service/ReleaseListService.java index 8323968..cdd0cb8 100644 --- a/system/src/main/java/com/canvas/web/modules/release/service/ReleaseListService.java +++ b/system/src/main/java/com/canvas/web/modules/release/service/ReleaseListService.java @@ -1,5 +1,9 @@ package com.canvas.web.modules.release.service; +import com.canvas.web.modules.release.dto.NoticeDTO; +import com.canvas.web.modules.release.dto.ReleaseDTO; +import com.canvas.web.modules.release.vo.NoticeDeviceVO; +import com.canvas.web.modules.release.vo.NoticeVO; import com.canvas.web.modules.release.vo.ReleaseListVO; import com.canvas.web.modules.utils.ResultUtils; import org.springframework.data.domain.Pageable; @@ -7,6 +11,16 @@ import org.springframework.data.domain.Pageable; import java.util.List; public interface ReleaseListService { - //分页查询主题素材历史信息 - ResultUtils> getReleaseList(String releaseName, Pageable pageable); + //分页查询发布信息 + ResultUtils> getReleaseList(String releaseName,String orgaId, Pageable pageable); + //分页查询发布历史信息 + ResultUtils> getReleaseHistoryList(String releaseName,String orgaId, Pageable pageable); + //编辑发布内容 + void edit(ReleaseDTO dto); + //获取紧急通知列表 + ResultUtils> getUrgentNoticeList(String noticeName, String orgaId, Pageable pageable); + //根据id获取详细通知信息 + NoticeDeviceVO getNoticeById(String noticeId); + //编辑紧急通知 + void editNotice(NoticeDTO dto); } diff --git a/system/src/main/java/com/canvas/web/modules/release/service/impl/ReleaseListServiceImpl.java b/system/src/main/java/com/canvas/web/modules/release/service/impl/ReleaseListServiceImpl.java index 7fe49c5..6a6c828 100644 --- a/system/src/main/java/com/canvas/web/modules/release/service/impl/ReleaseListServiceImpl.java +++ b/system/src/main/java/com/canvas/web/modules/release/service/impl/ReleaseListServiceImpl.java @@ -1,11 +1,20 @@ package com.canvas.web.modules.release.service.impl; -import com.canvas.web.modules.release.repository.ReleaseListRepository; +import com.canvas.web.modules.release.domain.*; +import com.canvas.web.modules.release.dto.NoticeDTO; +import com.canvas.web.modules.release.dto.ReleaseDTO; +import com.canvas.web.modules.release.dto.ReleaseDeviceDTO; +import com.canvas.web.modules.release.dto.ReleaseMaterialDTO; +import com.canvas.web.modules.release.repository.*; import com.canvas.web.modules.release.service.ReleaseListService; +import com.canvas.web.modules.release.vo.NoticeDeviceDetailsVO; +import com.canvas.web.modules.release.vo.NoticeDeviceVO; +import com.canvas.web.modules.release.vo.NoticeVO; import com.canvas.web.modules.release.vo.ReleaseListVO; import com.canvas.web.modules.utils.MapUtil; import com.canvas.web.modules.utils.PageSort; import com.canvas.web.modules.utils.ResultUtils; +import com.canvas.web.utils.StringUtils; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -13,6 +22,9 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; @@ -21,14 +33,143 @@ import java.util.Map; public class ReleaseListServiceImpl implements ReleaseListService { ReleaseListRepository releaseListRepository; + ReleaseMaterialRepository releaseMaterialRepository; + ReleaseDeviceRepository releaseDeviceRepository; + NoticeRepository noticeRepository; + NoticeDeviceRepository noticeDeviceRepository; + + + @Override + public ResultUtils> getReleaseList(String releaseName,String orgaId, Pageable pageable) { + PageRequest page= PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "create_time", Sort.Direction.DESC); + //分页查询 + Page> pageMap = releaseListRepository.getReleaseList(releaseName,orgaId,page); + //初始化分页返回数据 + List releaseList = MapUtil.setList(pageMap.getContent(),ReleaseListVO.class); + return ResultUtils.getResult(releaseList,pageMap); + } @Override - public ResultUtils> getReleaseList(String releaseName, Pageable pageable) { - PageRequest page= PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "create_time", Sort.Direction.DESC); + public ResultUtils> getReleaseHistoryList(String releaseName, String orgaId, Pageable pageable) { + PageRequest page= PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "actual_end", Sort.Direction.DESC); //分页查询 - Page> pageMap = releaseListRepository.getReleaseList(releaseName,page); + Page> pageMap = releaseListRepository.getReleaseHistoryList(releaseName,orgaId,page); //初始化分页返回数据 List releaseList = MapUtil.setList(pageMap.getContent(),ReleaseListVO.class); return ResultUtils.getResult(releaseList,pageMap); } + + @Override + public void edit(ReleaseDTO dto) { + ReleaseList releaseList = new ReleaseList(); + //修改 + if(null != dto.getReleaseId()){ + releaseList = releaseListRepository.findById(dto.getReleaseId()).get(); + releaseList.setUpdateTime(new Timestamp(new Date().getTime())); + }else{ + releaseList.setCreateTime(new Timestamp(new Date().getTime())); + releaseList.setUpdateTime(new Timestamp(new Date().getTime())); + releaseList.setIsDel(false); + releaseList.setIsState(1); + } + releaseList.setRelaaseName(dto.getRelaaseName()); + releaseList.setReleaseType(dto.getReleaseType()); + releaseList.setReleaseStart(dto.getReleaseStart()); + releaseList.setReleaseEnd(dto.getReleaseEnd()); + releaseList.setActualEnd(dto.getActualEnd()); + releaseList.setReleaseCycle(dto.getReleaseCycle()); + releaseList.setIsTopping(dto.getIsTopping()); + releaseList.setReleaseDevice(dto.getReleaseDevice()); + releaseList.setOrgaId(dto.getOrgaId()); + releaseList.setIsDel(dto.getIsDel()); + releaseList.setIsState(dto.getIsState()); + releaseList = releaseListRepository.saveAndFlush(releaseList); + + List rmDtos = dto.getReleaseMaterialDTOs(); + for(int i = 0;i rdDTOs = dto.getReleaseDeviceDTOs(); + List releaseDevices = new ArrayList<>(); + for(int i =0;i> getUrgentNoticeList(String noticeName, String orgaId, Pageable pageable) + { + PageRequest page= PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "create_time", Sort.Direction.DESC); + //分页查询 + Page> pageMap = noticeRepository.getUrgentNoticeList(noticeName,orgaId,page); + //初始化分页返回数据 + List noticeList = MapUtil.setList(pageMap.getContent(),NoticeVO.class); + return ResultUtils.getResult(noticeList,pageMap); + } + + @Override + public NoticeDeviceVO getNoticeById(String noticeId) { + NoticeDeviceVO vo = new NoticeDeviceVO(); + vo.setNotice(noticeRepository.findById(noticeId).get()); + List nddVOs = noticeDeviceRepository.findByIdToDevice(noticeId); + vo.setNoticeDeviceDetailsVO(nddVOs); + return vo; + } + + @Override + public void editNotice(NoticeDTO dto) { + Notice notice = new Notice(); + //修改 + if(null != dto.getNoticeId()){ + notice = noticeRepository.findById(dto.getNoticeId()).get(); + notice.setUpdateTime(new Timestamp(new Date().getTime())); + notice.setIsDel(dto.getIsDel()); + notice.setIsState(dto.getIsState()); + }else{ + notice.setCreateTime(new Timestamp(new Date().getTime())); + notice.setUpdateTime(new Timestamp(new Date().getTime())); + notice.setIsDel(false); + notice.setIsState(1); + } + notice.setContext(notice.getContext()); + notice.setContextColor(notice.getContextColor()); + notice.setContextSize(notice.getContextSize()); + notice.setContextPosition(notice.getContextPosition()); + notice.setContextSpeed(notice.getContextSpeed()); + notice.setOrgaId(notice.getOrgaId()); + notice.setNoticeDevice(notice.getNoticeDevice()); + notice = noticeRepository.saveAndFlush(notice); + + //当选择全部设备时 + if(1 == dto.getNoticeDevice()){ + noticeDeviceRepository.deleteByNoticeId(dto.getNoticeId()); + }else if(null != dto.getNoticeDevices() && dto.getNoticeDevices().size()!=0){ + noticeDeviceRepository.deleteByNoticeId(dto.getNoticeId()); + List nds = dto.getNoticeDevices(); + noticeDeviceRepository.saveAll(nds); + } + } } diff --git a/system/src/main/java/com/canvas/web/modules/release/vo/NoticeDeviceDetailsVO.java b/system/src/main/java/com/canvas/web/modules/release/vo/NoticeDeviceDetailsVO.java new file mode 100644 index 0000000..e049d43 --- /dev/null +++ b/system/src/main/java/com/canvas/web/modules/release/vo/NoticeDeviceDetailsVO.java @@ -0,0 +1,18 @@ +package com.canvas.web.modules.release.vo; + +import com.canvas.web.modules.release.domain.Notice; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +public class NoticeDeviceDetailsVO { + + private String ndId; + private String noticeId; + private String deviceId; + private String deviceName; + +} diff --git a/system/src/main/java/com/canvas/web/modules/release/vo/NoticeDeviceVO.java b/system/src/main/java/com/canvas/web/modules/release/vo/NoticeDeviceVO.java new file mode 100644 index 0000000..1693320 --- /dev/null +++ b/system/src/main/java/com/canvas/web/modules/release/vo/NoticeDeviceVO.java @@ -0,0 +1,16 @@ +package com.canvas.web.modules.release.vo; + +import com.canvas.web.modules.release.domain.Notice; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +public class NoticeDeviceVO { + + private Notice notice; + private List noticeDeviceDetailsVO; + +} diff --git a/system/src/main/java/com/canvas/web/modules/release/vo/NoticeVO.java b/system/src/main/java/com/canvas/web/modules/release/vo/NoticeVO.java new file mode 100644 index 0000000..5b5edae --- /dev/null +++ b/system/src/main/java/com/canvas/web/modules/release/vo/NoticeVO.java @@ -0,0 +1,17 @@ +package com.canvas.web.modules.release.vo; + +import lombok.Getter; +import lombok.Setter; + +import java.sql.Timestamp; + +@Getter +@Setter +public class NoticeVO { + private String noticeId; + private String context; + private Timestamp createTime; + private String createBy; + private String createrName; + private Integer isState; +}