From d64d15661b2e0ea60fcffb77466721708792277f Mon Sep 17 00:00:00 2001 From: youxilong Date: Thu, 29 Feb 2024 08:53:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=9F=AD=E4=BF=A1=E5=BA=93?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E3=80=81=E5=BE=AE=E4=BF=A1=E5=BA=93=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../textmessage/TextMessageController.java | 20 +- .../WechatTemplateController.java | 16 +- .../TextMessageSuitTask.java | 47 +++++ .../WechatTemplateSuitTask.java | 16 -- .../dto/textmessage/TextMessageDTO.java | 47 +++++ .../dto/textmessage/TextMessageTaskDTO.java | 107 ++++++++++ .../dto/wechattemplate/WechatTemplateDTO.java | 95 --------- .../wechattemplate/WechatTemplateTaskDTO.java | 113 ++++++++++ .../mapper/textmessage/TextMessageMapper.java | 48 ++++- .../wechattemplate/WechatTemplateMapper.java | 30 +-- .../impl/OperationInfoServiceImpl.java | 5 +- .../impl/ScriptInfoServiceImpl.java | 4 + .../textmessage/ITextMessageService.java | 18 +- .../impl/TextMessageServiceImpl.java | 141 +++++++++++-- .../IWechatTemplateService.java | 14 +- .../impl/WechatTemplateServiceImpl.java | 106 ++++++---- .../manage/vo/textmessage/TextMessageVO.java | 115 +++++++++++ .../vo/wechattemplate/WechatTemplateVO.java | 112 ++++++++++ .../manage/scriptInfo/ScriptInfoMapper.xml | 10 +- .../manage/textmessage/TextMessageMapper.xml | 183 ++++++++++++----- .../wechattemplate/WechatTemplateMapper.xml | 194 ++++++------------ 21 files changed, 1033 insertions(+), 408 deletions(-) create mode 100644 postdischarge-manage/src/main/java/com/xinelu/manage/domain/textmessagesuittask/TextMessageSuitTask.java create mode 100644 postdischarge-manage/src/main/java/com/xinelu/manage/dto/textmessage/TextMessageDTO.java create mode 100644 postdischarge-manage/src/main/java/com/xinelu/manage/dto/textmessage/TextMessageTaskDTO.java create mode 100644 postdischarge-manage/src/main/java/com/xinelu/manage/dto/wechattemplate/WechatTemplateTaskDTO.java create mode 100644 postdischarge-manage/src/main/java/com/xinelu/manage/vo/textmessage/TextMessageVO.java create mode 100644 postdischarge-manage/src/main/java/com/xinelu/manage/vo/wechattemplate/WechatTemplateVO.java diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/textmessage/TextMessageController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/textmessage/TextMessageController.java index fb66fe40..156e537c 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/textmessage/TextMessageController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/textmessage/TextMessageController.java @@ -6,8 +6,10 @@ import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.core.page.TableDataInfo; import com.xinelu.common.enums.BusinessType; import com.xinelu.common.utils.poi.ExcelUtil; -import com.xinelu.manage.domain.textmessage.TextMessage; +import com.xinelu.manage.dto.textmessage.TextMessageDTO; +import com.xinelu.manage.dto.textmessage.TextMessageTaskDTO; import com.xinelu.manage.service.textmessage.ITextMessageService; +import com.xinelu.manage.vo.textmessage.TextMessageVO; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -32,9 +34,9 @@ public class TextMessageController extends BaseController { */ @PreAuthorize("@ss.hasPermi('manage:message:list')") @GetMapping("/list") - public TableDataInfo list(TextMessage textMessage) { + public TableDataInfo list(TextMessageDTO textMessageDTO) { startPage(); - List list = textMessageService.selectTextMessageList(textMessage); + List list = textMessageService.selectTextMessageList(textMessageDTO); return getDataTable(list); } @@ -44,9 +46,9 @@ public class TextMessageController extends BaseController { @PreAuthorize("@ss.hasPermi('manage:message:export')") @Log(title = "短信模板信息", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, TextMessage textMessage) { - List list = textMessageService.selectTextMessageList(textMessage); - ExcelUtil util = new ExcelUtil(TextMessage.class); + public void export(HttpServletResponse response, TextMessageDTO textMessageDTO) { + List list = textMessageService.selectTextMessageList(textMessageDTO); + ExcelUtil util = new ExcelUtil(TextMessageVO.class); util.exportExcel(response, list, "短信模板信息数据"); } @@ -65,7 +67,7 @@ public class TextMessageController extends BaseController { @PreAuthorize("@ss.hasPermi('manage:message:add')") @Log(title = "短信模板信息", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody TextMessage textMessage) { + public AjaxResult add(@RequestBody TextMessageTaskDTO textMessage) { return toAjax(textMessageService.insertTextMessage(textMessage)); } @@ -75,8 +77,8 @@ public class TextMessageController extends BaseController { @PreAuthorize("@ss.hasPermi('manage:message:edit')") @Log(title = "短信模板信息", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@RequestBody TextMessage textMessage) { - return toAjax(textMessageService.updateTextMessage(textMessage)); + public AjaxResult edit(@RequestBody TextMessageTaskDTO textMessageTaskDTO) { + return toAjax(textMessageService.updateTextMessage(textMessageTaskDTO)); } /** diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/wechattemplate/WechatTemplateController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/wechattemplate/WechatTemplateController.java index 6a0dbb3d..e15d1dda 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/wechattemplate/WechatTemplateController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/wechattemplate/WechatTemplateController.java @@ -7,7 +7,9 @@ import com.xinelu.common.core.page.TableDataInfo; import com.xinelu.common.enums.BusinessType; import com.xinelu.common.utils.poi.ExcelUtil; import com.xinelu.manage.dto.wechattemplate.WechatTemplateDTO; +import com.xinelu.manage.dto.wechattemplate.WechatTemplateTaskDTO; import com.xinelu.manage.service.wechattemplate.IWechatTemplateService; +import com.xinelu.manage.vo.wechattemplate.WechatTemplateVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; @@ -38,7 +40,7 @@ public class WechatTemplateController extends BaseController { @GetMapping("/list") public TableDataInfo list(WechatTemplateDTO wechatTemplateDto) { startPage(); - List list = wechatTemplateService.selectWechatTemplateList(wechatTemplateDto); + List list = wechatTemplateService.selectWechatTemplateList(wechatTemplateDto); return getDataTable(list); } @@ -50,8 +52,8 @@ public class WechatTemplateController extends BaseController { @Log(title = "微信模板信息", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, WechatTemplateDTO wechatTemplateDto) { - List list = wechatTemplateService.selectWechatTemplateList(wechatTemplateDto); - ExcelUtil util = new ExcelUtil(WechatTemplateDTO.class); + List list = wechatTemplateService.selectWechatTemplateList(wechatTemplateDto); + ExcelUtil util = new ExcelUtil(WechatTemplateVO.class); util.exportExcel(response, list, "微信模板信息数据"); } @@ -72,8 +74,8 @@ public class WechatTemplateController extends BaseController { @PreAuthorize("@ss.hasPermi('manage:template:add')") @Log(title = "微信模板信息", businessType = BusinessType.INSERT) @PostMapping("/add") - public AjaxResult add(@RequestBody WechatTemplateDTO wechatTemplateDto) { - return toAjax(wechatTemplateService.insertWechatTemplate(wechatTemplateDto)); + public AjaxResult add(@RequestBody WechatTemplateTaskDTO wechatTemplateTaskDTO) { + return toAjax(wechatTemplateService.insertWechatTemplate(wechatTemplateTaskDTO)); } /** @@ -83,8 +85,8 @@ public class WechatTemplateController extends BaseController { @PreAuthorize("@ss.hasPermi('manage:template:edit')") @Log(title = "微信模板信息", businessType = BusinessType.UPDATE) @PutMapping(value = "/edit") - public AjaxResult edit(@RequestBody WechatTemplateDTO wechatTemplateDto) { - return toAjax(wechatTemplateService.updateWechatTemplate(wechatTemplateDto)); + public AjaxResult edit(@RequestBody WechatTemplateTaskDTO wechatTemplateTaskDTO) { + return toAjax(wechatTemplateService.updateWechatTemplate(wechatTemplateTaskDTO)); } /** diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/textmessagesuittask/TextMessageSuitTask.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/textmessagesuittask/TextMessageSuitTask.java new file mode 100644 index 00000000..4237b35e --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/textmessagesuittask/TextMessageSuitTask.java @@ -0,0 +1,47 @@ +package com.xinelu.manage.domain.textmessagesuittask; + +import com.xinelu.common.annotation.Excel; +import com.xinelu.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * @author : youxilong + * @date : 2024/2/28 16:32 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "短信模板适用任务类型对象", description = "text_message_suit_task") +public class TextMessageSuitTask extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + + /** + * 短信模板id + */ + @ApiModelProperty(value = "短信模板id") + private Long textMessageId; + + /** + * 适用任务类型字典Id + */ + @ApiModelProperty(value = "适用任务类型字典Id") + private Long suitTaskTypeId; + + /** + * 适用任务类型 + */ + @ApiModelProperty(value = "适用任务类型") + @Excel(name = "适用任务类型") + private String suitTaskTypeName; +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/wechattemplatesuittask/WechatTemplateSuitTask.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/wechattemplatesuittask/WechatTemplateSuitTask.java index 45b746a9..ea099a22 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/wechattemplatesuittask/WechatTemplateSuitTask.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/wechattemplatesuittask/WechatTemplateSuitTask.java @@ -8,8 +8,6 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; /** * @author : youxilong @@ -46,18 +44,4 @@ public class WechatTemplateSuitTask extends BaseEntity { @ApiModelProperty(value = "适用任务类型") @Excel(name = "适用任务类型") private String suitTaskTypeName; - - @Override - public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("wechatTemplateId", getWechatTemplateId()) - .append("suitTaskTypeId", getSuitTaskTypeId()) - .append("suitTaskTypeName", getSuitTaskTypeName()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); - } } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/textmessage/TextMessageDTO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/textmessage/TextMessageDTO.java new file mode 100644 index 00000000..993b4506 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/textmessage/TextMessageDTO.java @@ -0,0 +1,47 @@ +package com.xinelu.manage.dto.textmessage; + +import com.xinelu.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author : youxilong + * @date : 2024/2/28 16:01 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel(value = "短信模板信息对象DTO") +public class TextMessageDTO { + + /** + * 所属科室id + */ + @ApiModelProperty(value = "所属科室id") + @Excel(name = "所属科室id") + private Long departmentId; + + /** + * 短信模板名称 + */ + @ApiModelProperty(value = "短信模板名称") + @Excel(name = "短信模板名称") + private String textMessageName; + + /** + * 短信ID + */ + @ApiModelProperty(value = "短信ID") + @Excel(name = "短信ID") + private String textMessageId; + + /** + * 短信状态,上架:GROUNDING,下架:OFF_SHELF + */ + @ApiModelProperty(value = "短信状态,上架:GROUNDING,下架:OFF_SHELF") + @Excel(name = "短信状态,上架:GROUNDING,下架:OFF_SHELF") + private String textMessageStatus; +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/textmessage/TextMessageTaskDTO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/textmessage/TextMessageTaskDTO.java new file mode 100644 index 00000000..81e27354 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/textmessage/TextMessageTaskDTO.java @@ -0,0 +1,107 @@ +package com.xinelu.manage.dto.textmessage; + +import com.xinelu.common.annotation.Excel; +import com.xinelu.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * @author : youxilong + * @date : 2024/2/28 20:38 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "短信模板信息与适用任务类型DTO对象") +public class TextMessageTaskDTO extends BaseEntity { + private static final long serialVersionUID = 1L; + /** + * 主键id + */ + private Long id; + + /** + * 所属科室id + */ + @ApiModelProperty(value = "所属科室id") + @Excel(name = "所属科室id") + private Long departmentId; + + /** + * 所属科室名称 + */ + @ApiModelProperty(value = "所属科室名称") + @Excel(name = "所属科室名称") + private String departmentName; + + /** + * 病种id + */ + @ApiModelProperty(value = "病种id") + @Excel(name = "病种id") + private Long diseaseTypeId; + + /** + * 病种名称 + */ + @ApiModelProperty(value = "病种名称") + @Excel(name = "病种名称") + private String diseaseTypeName; + + /** + * 短信模板名称 + */ + @ApiModelProperty(value = "短信模板名称") + @Excel(name = "短信模板名称") + private String textMessageName; + + /** + * 短信ID + */ + @ApiModelProperty(value = "短信ID") + @Excel(name = "短信ID") + private String textMessageId; + + /** + * 短信内容 + */ + @ApiModelProperty(value = "短信内容") + @Excel(name = "短信内容") + private String textMessageContent; + + /** + * 短信通道,水滴平台:WATER_DROPLET_PLATFORM + */ + @ApiModelProperty(value = "短信通道,水滴平台:WATER_DROPLET_PLATFORM") + @Excel(name = "短信通道,水滴平台:WATER_DROPLET_PLATFORM") + private String textMessageChannel; + + /** + * 短信状态,上架:GROUNDING,下架:OFF_SHELF + */ + @ApiModelProperty(value = "短信状态,上架:GROUNDING,下架:OFF_SHELF") + @Excel(name = "短信状态,上架:GROUNDING,下架:OFF_SHELF") + private String textMessageStatus; + + /** + * 短信排序 + */ + @ApiModelProperty(value = "短信排序") + @Excel(name = "短信排序") + private Integer textMessageSort; + + /** + * 短信备注 + */ + @ApiModelProperty(value = "短信备注") + @Excel(name = "短信备注") + private String textMessageRemark; + + @ApiModelProperty(value = "适用任务类型字典表ids") + private Long[] suitTaskTypeIds; +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/wechattemplate/WechatTemplateDTO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/wechattemplate/WechatTemplateDTO.java index f77946f9..1b999b11 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/wechattemplate/WechatTemplateDTO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/wechattemplate/WechatTemplateDTO.java @@ -10,9 +10,6 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; @@ -28,49 +25,19 @@ import javax.validation.constraints.NotBlank; public class WechatTemplateDTO extends BaseEntity { private static final long serialVersionUID = 1L; - /** - * 主键id - */ - @ApiModelProperty(value = "主键id") - private Long id; - /** * 所属科室id */ @ApiModelProperty(value = "所属科室id") @Excel(name = "所属科室id") - @NotBlank(message = "科室id不能为空", groups = {Insert.class, Update.class}) private Long departmentId; - /** - * 所属科室名称 - */ - @ApiModelProperty(value = "所属科室名称") - @Excel(name = "所属科室名称") - @NotBlank(message = "科室名称不能为空", groups = {Insert.class, Update.class}) - private String departmentName; - - /** - * 病种id - */ - @ApiModelProperty(value = "病种id") - @Excel(name = "病种id") - private Long diseaseTypeId; - - /** - * 病种名称 - */ - @ApiModelProperty(value = "病种名称") - @Excel(name = "病种名称") - private String diseaseTypeName; /** * 微信模板名称 */ @ApiModelProperty(value = "微信模板名称") @Excel(name = "微信模板名称") - @NotBlank(message = "微信模板名称不能为空", groups = {Insert.class, Update.class}) - @Length(max = 50, message = "微信模板名称不能超过50个字符", groups = {Insert.class, Update.class}) private String wechatTemplateName; /** @@ -78,75 +45,13 @@ public class WechatTemplateDTO extends BaseEntity { */ @ApiModelProperty(value = "模板ID") @Excel(name = "模板ID") - @NotBlank(message = "模板ID不能为空", groups = {Insert.class, Update.class}) private String templateId; - /** - * 模板内容 - */ - @ApiModelProperty(value = "模板内容") - @Excel(name = "模板内容") - @Length(max = 300, message = "模板内容不能超过300个字符", groups = {Insert.class, Update.class}) - private String templateContent; - /** * 模板来源,小程序:WE_CHAT_APPLET,公众号:WE_CHAT_OFFICIAL_ACCOUNT */ @ApiModelProperty(value = "模板来源,小程序:WE_CHAT_APPLET,公众号:WE_CHAT_OFFICIAL_ACCOUNT") @Excel(name = "模板来源,小程序:WE_CHAT_APPLET,公众号:WE_CHAT_OFFICIAL_ACCOUNT") - @NotBlank(message = "模板来源不能为空", groups = {Insert.class, Update.class}) private String templateSource; - /** - * 模板顺序 - */ - @ApiModelProperty(value = "模板顺序") - @Excel(name = "模板顺序") - private Integer templateSort; - - /** - * 模板备注 - */ - @ApiModelProperty(value = "模板备注") - @Excel(name = "模板备注") - private String templateRemark; - - /** - * 适用任务类型字典Id - */ - @ApiModelProperty(value = "适用任务类型字典Id") - @NotBlank(message = "适用任务类型不能为空", groups = {Insert.class, Update.class}) - private Long suitTaskTypeId; - - /** - * 适用任务类型 - */ - @Excel(name = "适用任务类型名称") - @ApiModelProperty(value = "适用任务类型名称") - @NotBlank(message = "适用任务类型名称不能为空", groups = {Insert.class, Update.class}) - private String suitTaskTypeName; - - - @Override - public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("departmentId", getDepartmentId()) - .append("departmentName", getDepartmentName()) - .append("diseaseTypeId", getDiseaseTypeId()) - .append("diseaseTypeName", getDiseaseTypeName()) - .append("wechatTemplateName", getWechatTemplateName()) - .append("templateId", getTemplateId()) - .append("templateContent", getTemplateContent()) - .append("templateSource", getTemplateSource()) - .append("templateSort", getTemplateSort()) - .append("templateRemark", getTemplateRemark()) - .append("suitTaskTypeId", getSuitTaskTypeId()) - .append("suitTaskTypeName", getSuitTaskTypeName()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); - } } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/wechattemplate/WechatTemplateTaskDTO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/wechattemplate/WechatTemplateTaskDTO.java new file mode 100644 index 00000000..cfd15816 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/wechattemplate/WechatTemplateTaskDTO.java @@ -0,0 +1,113 @@ +package com.xinelu.manage.dto.wechattemplate; + +import com.xinelu.common.annotation.Excel; +import com.xinelu.common.core.domain.BaseEntity; +import com.xinelu.common.custominterface.Insert; +import com.xinelu.common.custominterface.Update; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; + +/** + * @author : youxilong + * @date : 2024/2/28 21:45 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "微信模板信息与适用任务类型DTO对象") +public class WechatTemplateTaskDTO extends BaseEntity { + private static final long serialVersionUID = 1L; + /** + * 主键id + */ + @ApiModelProperty(value = "主键id") + private Long id; + + /** + * 所属科室id + */ + @ApiModelProperty(value = "所属科室id") + @Excel(name = "所属科室id") + @NotBlank(message = "科室id不能为空", groups = {Insert.class, Update.class}) + private Long departmentId; + + /** + * 所属科室名称 + */ + @ApiModelProperty(value = "所属科室名称") + @Excel(name = "所属科室名称") + @NotBlank(message = "科室名称不能为空", groups = {Insert.class, Update.class}) + private String departmentName; + + /** + * 病种id + */ + @ApiModelProperty(value = "病种id") + @Excel(name = "病种id") + private Long diseaseTypeId; + + /** + * 病种名称 + */ + @ApiModelProperty(value = "病种名称") + @Excel(name = "病种名称") + private String diseaseTypeName; + + /** + * 微信模板名称 + */ + @ApiModelProperty(value = "微信模板名称") + @Excel(name = "微信模板名称") + @NotBlank(message = "微信模板名称不能为空", groups = {Insert.class, Update.class}) + @Length(max = 50, message = "微信模板名称不能超过50个字符", groups = {Insert.class, Update.class}) + private String wechatTemplateName; + + /** + * 模板ID + */ + @ApiModelProperty(value = "模板ID") + @Excel(name = "模板ID") + @NotBlank(message = "模板ID不能为空", groups = {Insert.class, Update.class}) + private String templateId; + + /** + * 模板内容 + */ + @ApiModelProperty(value = "模板内容") + @Excel(name = "模板内容") + @Length(max = 300, message = "模板内容不能超过300个字符", groups = {Insert.class, Update.class}) + private String templateContent; + + /** + * 模板来源,小程序:WE_CHAT_APPLET,公众号:WE_CHAT_OFFICIAL_ACCOUNT + */ + @ApiModelProperty(value = "模板来源,小程序:WE_CHAT_APPLET,公众号:WE_CHAT_OFFICIAL_ACCOUNT") + @Excel(name = "模板来源,小程序:WE_CHAT_APPLET,公众号:WE_CHAT_OFFICIAL_ACCOUNT") + @NotBlank(message = "模板来源不能为空", groups = {Insert.class, Update.class}) + private String templateSource; + + /** + * 模板顺序 + */ + @ApiModelProperty(value = "模板顺序") + @Excel(name = "模板顺序") + private Integer templateSort; + + /** + * 模板备注 + */ + @ApiModelProperty(value = "模板备注") + @Excel(name = "模板备注") + private String templateRemark; + + @ApiModelProperty(value = "适用任务类型字典表ids") + private Long[] suitTaskTypeIds; +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/textmessage/TextMessageMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/textmessage/TextMessageMapper.java index 46894ebb..34522487 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/textmessage/TextMessageMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/textmessage/TextMessageMapper.java @@ -1,6 +1,10 @@ package com.xinelu.manage.mapper.textmessage; import com.xinelu.manage.domain.textmessage.TextMessage; +import com.xinelu.manage.domain.textmessagesuittask.TextMessageSuitTask; +import com.xinelu.manage.dto.textmessage.TextMessageDTO; +import com.xinelu.manage.dto.textmessage.TextMessageTaskDTO; +import com.xinelu.manage.vo.textmessage.TextMessageVO; import java.util.List; @@ -22,10 +26,10 @@ public interface TextMessageMapper { /** * 查询短信模板信息列表 * - * @param textMessage 短信模板信息 + * @param textMessageDTO 短信模板信息 * @return 短信模板信息集合 */ - public List selectTextMessageList(TextMessage textMessage); + public List selectTextMessageList(TextMessageDTO textMessageDTO); /** * 新增短信模板信息 @@ -58,4 +62,44 @@ public interface TextMessageMapper { * @return 结果 */ public int deleteTextMessageByIds(Long[] ids); + + /** + * 根据id查询短信模板信息 + * + * @param id + * @return + */ + TextMessageVO selectTextMessageInfoById(Long id); + + /** + * 检查短信模板信息是否存在 + * + * @param textMessageTaskDTO + * @return + */ + int countByTextMessageTaskDTO(TextMessageTaskDTO textMessageTaskDTO); + + /** + * 批量插入短信模板适用任务类型 + * + * @param tasks + * @return + */ + int insertTextMessageSuitTasks(List tasks); + + /** + * 批量修改短信模板适用任务类型 + * + * @param tasks + * @return + */ + int updateTextMessageSuitTasks(List tasks); + + /** + * 批量删除短信模板适用任务类型 + * + * @param ids + * @return + */ + int deleteTextMessageSuitTasks(Long[] ids); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/wechattemplate/WechatTemplateMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/wechattemplate/WechatTemplateMapper.java index d201eaf9..85e3c7df 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/wechattemplate/WechatTemplateMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/wechattemplate/WechatTemplateMapper.java @@ -3,6 +3,8 @@ package com.xinelu.manage.mapper.wechattemplate; import com.xinelu.manage.domain.wechattemplate.WechatTemplate; import com.xinelu.manage.domain.wechattemplatesuittask.WechatTemplateSuitTask; import com.xinelu.manage.dto.wechattemplate.WechatTemplateDTO; +import com.xinelu.manage.dto.wechattemplate.WechatTemplateTaskDTO; +import com.xinelu.manage.vo.wechattemplate.WechatTemplateVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -68,7 +70,7 @@ public interface WechatTemplateMapper { * @param wechatTemplateDto * @return */ - List selectWechatTemplateDtoList(WechatTemplateDTO wechatTemplateDto); + List selectWechatTemplateDtoList(WechatTemplateDTO wechatTemplateDto); /** * 根据id查询微信模板Dto @@ -76,31 +78,23 @@ public interface WechatTemplateMapper { * @param id * @return */ - WechatTemplateDTO selectWechatTemplateDtoById(@Param("id") Long id); - - /** - * 判断是否存在微信模板信息 - * - * @param wechatTemplateDto - * @return - */ - int countByWechatTemplateDto(WechatTemplateDTO wechatTemplateDto); + WechatTemplateVO selectWechatTemplateDtoById(@Param("id") Long id); /** * 新增微信模板适用任务类型 * - * @param wechatTemplateSuitTask + * @param tasks * @return */ - int insertWechatTemplateSuitTask(WechatTemplateSuitTask wechatTemplateSuitTask); + int insertWechatTemplateSuitTask(List tasks); /** * 修改微信模板适用任务类型 * - * @param wechatTemplateSuitTask + * @param tasks * @return */ - int updateWechatTemplateSuitTask(WechatTemplateSuitTask wechatTemplateSuitTask); + int updateWechatTemplateSuitTask(List tasks); /** * 批量删除微信模板使用任务类型 @@ -109,4 +103,12 @@ public interface WechatTemplateMapper { * @return */ int deleteWechatTemplateSuitTaskByIds(Long[] ids); + + /** + * 检查微信模板名称是否存在 + * + * @param wechatTemplateTaskDTO + * @return + */ + int countByWechatTemplateTaskDTO(WechatTemplateTaskDTO wechatTemplateTaskDTO); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/operationInfo/impl/OperationInfoServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/operationInfo/impl/OperationInfoServiceImpl.java index 282e74e7..3c9dbb6b 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/operationInfo/impl/OperationInfoServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/operationInfo/impl/OperationInfoServiceImpl.java @@ -7,8 +7,8 @@ import com.xinelu.common.utils.StringUtils; import com.xinelu.manage.domain.operationInfo.OperationInfo; import com.xinelu.manage.mapper.operationInfo.OperationInfoMapper; import com.xinelu.manage.service.operationInfo.IOperationInfoService; -import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.List; @@ -53,6 +53,7 @@ public class OperationInfoServiceImpl implements IOperationInfoService { * @return 结果 */ @Override + @Transactional(rollbackFor = Exception.class) public int insertOperationInfo(OperationInfo operationInfo) { // 检查手术名称是否为空 if (StringUtils.isEmpty(operationInfo.getOperationName())) { @@ -85,6 +86,7 @@ public class OperationInfoServiceImpl implements IOperationInfoService { * @return 结果 */ @Override + @Transactional(rollbackFor = Exception.class) public int updateOperationInfo(OperationInfo operationInfo) { // 检查手术信息是否为空 if (StringUtils.isEmpty(operationInfo.getOperationInfo())) { @@ -108,6 +110,7 @@ public class OperationInfoServiceImpl implements IOperationInfoService { * @return 结果 */ @Override + @Transactional(rollbackFor = Exception.class) public int deleteOperationInfoByIds(Long[] ids) { return operationInfoMapper.deleteOperationInfoByIds(ids); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/scriptInfo/impl/ScriptInfoServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/scriptInfo/impl/ScriptInfoServiceImpl.java index ee210e3c..fbff96df 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/scriptInfo/impl/ScriptInfoServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/scriptInfo/impl/ScriptInfoServiceImpl.java @@ -7,6 +7,7 @@ import com.xinelu.manage.domain.scriptInfo.ScriptInfo; import com.xinelu.manage.mapper.scriptInfo.ScriptInfoMapper; import com.xinelu.manage.service.scriptInfo.IScriptInfoService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.List; @@ -51,6 +52,7 @@ public class ScriptInfoServiceImpl implements IScriptInfoService { * @return 结果 */ @Override + @Transactional(rollbackFor = Exception.class) public int insertScriptInfo(ScriptInfo scriptInfo) { // 判断通用话术名称是否存在 if (scriptInfoMapper.countByScriptInfo(scriptInfo) > 0) { @@ -69,6 +71,7 @@ public class ScriptInfoServiceImpl implements IScriptInfoService { * @return 结果 */ @Override + @Transactional(rollbackFor = Exception.class) public int updateScriptInfo(ScriptInfo scriptInfo) { // 判断通用话术名称是否存在 if (scriptInfoMapper.countByScriptInfo(scriptInfo) > 0) { @@ -87,6 +90,7 @@ public class ScriptInfoServiceImpl implements IScriptInfoService { * @return 结果 */ @Override + @Transactional(rollbackFor = Exception.class) public int deleteScriptInfoByIds(Long[] ids) { return scriptInfoMapper.deleteScriptInfoByIds(ids); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/textmessage/ITextMessageService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/textmessage/ITextMessageService.java index 7b10254e..478503e7 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/textmessage/ITextMessageService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/textmessage/ITextMessageService.java @@ -1,6 +1,8 @@ package com.xinelu.manage.service.textmessage; -import com.xinelu.manage.domain.textmessage.TextMessage; +import com.xinelu.manage.dto.textmessage.TextMessageDTO; +import com.xinelu.manage.dto.textmessage.TextMessageTaskDTO; +import com.xinelu.manage.vo.textmessage.TextMessageVO; import java.util.List; @@ -17,31 +19,31 @@ public interface ITextMessageService { * @param id 短信模板信息主键 * @return 短信模板信息 */ - public TextMessage selectTextMessageById(Long id); + public TextMessageVO selectTextMessageById(Long id); /** * 查询短信模板信息列表 * - * @param textMessage 短信模板信息 + * @param textMessageDTO 短信模板信息 * @return 短信模板信息集合 */ - public List selectTextMessageList(TextMessage textMessage); + public List selectTextMessageList(TextMessageDTO textMessageDTO); /** * 新增短信模板信息 * - * @param textMessage 短信模板信息 + * @param textMessageTaskDTO 短信模板信息 * @return 结果 */ - public int insertTextMessage(TextMessage textMessage); + public int insertTextMessage(TextMessageTaskDTO textMessageTaskDTO); /** * 修改短信模板信息 * - * @param textMessage 短信模板信息 + * @param textMessageTaskDTO 短信模板信息 * @return 结果 */ - public int updateTextMessage(TextMessage textMessage); + public int updateTextMessage(TextMessageTaskDTO textMessageTaskDTO); /** * 批量删除短信模板信息 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/textmessage/impl/TextMessageServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/textmessage/impl/TextMessageServiceImpl.java index 0fe51896..f0a47e39 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/textmessage/impl/TextMessageServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/textmessage/impl/TextMessageServiceImpl.java @@ -1,12 +1,24 @@ package com.xinelu.manage.service.textmessage.impl; +import com.xinelu.common.core.domain.entity.SysDictData; +import com.xinelu.common.exception.ServiceException; import com.xinelu.common.utils.DateUtils; +import com.xinelu.common.utils.SecurityUtils; +import com.xinelu.common.utils.bean.BeanUtils; import com.xinelu.manage.domain.textmessage.TextMessage; +import com.xinelu.manage.domain.textmessagesuittask.TextMessageSuitTask; +import com.xinelu.manage.dto.textmessage.TextMessageDTO; +import com.xinelu.manage.dto.textmessage.TextMessageTaskDTO; import com.xinelu.manage.mapper.textmessage.TextMessageMapper; import com.xinelu.manage.service.textmessage.ITextMessageService; +import com.xinelu.manage.vo.textmessage.TextMessageVO; +import com.xinelu.system.mapper.SysDictDataMapper; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -20,6 +32,9 @@ public class TextMessageServiceImpl implements ITextMessageService { @Resource private TextMessageMapper textMessageMapper; + @Resource + private SysDictDataMapper sysDictDataMapper; + /** * 查询短信模板信息 * @@ -27,43 +42,131 @@ public class TextMessageServiceImpl implements ITextMessageService { * @return 短信模板信息 */ @Override - public TextMessage selectTextMessageById(Long id) { - return textMessageMapper.selectTextMessageById(id); + public TextMessageVO selectTextMessageById(Long id) { + return textMessageMapper.selectTextMessageInfoById(id); } /** * 查询短信模板信息列表 * - * @param textMessage 短信模板信息 + * @param textMessageDTO 短信模板信息 * @return 短信模板信息 */ @Override - public List selectTextMessageList(TextMessage textMessage) { - return textMessageMapper.selectTextMessageList(textMessage); + public List selectTextMessageList(TextMessageDTO textMessageDTO) { + return textMessageMapper.selectTextMessageList(textMessageDTO); } /** * 新增短信模板信息 * - * @param textMessage 短信模板信息 + * @param textMessageTaskDTO 短信模板信息 * @return 结果 */ @Override - public int insertTextMessage(TextMessage textMessage) { - textMessage.setCreateTime(DateUtils.getNowDate()); - return textMessageMapper.insertTextMessage(textMessage); + @Transactional(rollbackFor = Exception.class) + public int insertTextMessage(TextMessageTaskDTO textMessageTaskDTO) { + // 检查短信模板名称是否已存在 + if (textMessageMapper.countByTextMessageTaskDTO(textMessageTaskDTO) > 0) { + throw new ServiceException("短信模板名称已存在"); + } + + // 设置创建者和创建时间 + String currentUsername = SecurityUtils.getUsername(); + Date currentTime = DateUtils.getNowDate(); + textMessageTaskDTO.setCreateBy(currentUsername); + textMessageTaskDTO.setCreateTime(currentTime); + + // 将textMessageTaskDTO对象的属性复制到textMessage对象 + TextMessage textMessage = new TextMessage(); + BeanUtils.copyProperties(textMessageTaskDTO, textMessage); + + // 插入textMessage记录并检查结果 + if (textMessageMapper.insertTextMessage(textMessage) <= 0) { + throw new ServiceException("新增短信模板失败"); + } + + // 批量创建TextMessageSuitTask对象并插入 + List tasks = new ArrayList<>(); + for (Long suitTaskTypeId : textMessageTaskDTO.getSuitTaskTypeIds()) { + TextMessageSuitTask task = createTextMessageSuitTask(suitTaskTypeId, textMessage.getId(), currentUsername, currentTime); + tasks.add(task); + } + + // 批量插入TextMessageSuitTask记录并检查结果 + if (!tasks.isEmpty() && textMessageMapper.insertTextMessageSuitTasks(tasks) != tasks.size()) { + throw new ServiceException("新增短信模板适用任务类型失败"); + } + + // 返回成功插入的记录数 + return 1; + } + + private TextMessageSuitTask createTextMessageSuitTask(Long suitTaskTypeId, Long textMessageId, String createdBy, Date createdAt) { + SysDictData sysDictData = sysDictDataMapper.selectDictDataById(suitTaskTypeId); + TextMessageSuitTask task = new TextMessageSuitTask(); + task.setTextMessageId(textMessageId); + task.setSuitTaskTypeId(suitTaskTypeId); + task.setSuitTaskTypeName(sysDictData.getDictLabel()); + task.setCreateBy(createdBy); + task.setCreateTime(createdAt); + return task; } /** * 修改短信模板信息 * - * @param textMessage 短信模板信息 + * @param textMessageTaskDTO 短信模板信息 * @return 结果 */ @Override - public int updateTextMessage(TextMessage textMessage) { - textMessage.setUpdateTime(DateUtils.getNowDate()); - return textMessageMapper.updateTextMessage(textMessage); + @Transactional(rollbackFor = Exception.class) + public int updateTextMessage(TextMessageTaskDTO textMessageTaskDTO) { + // 检查短信模板名称是否已存在 + if (textMessageMapper.countByTextMessageTaskDTO(textMessageTaskDTO) > 0) { + throw new ServiceException("短信模板名称已存在"); + } + + // 设置修改者和修改时间 + String editUsername = SecurityUtils.getUsername(); + Date editTime = DateUtils.getNowDate(); + textMessageTaskDTO.setUpdateBy(editUsername); + textMessageTaskDTO.setUpdateTime(editTime); + + // 将textMessageTaskDTO对象的属性复制到textMessage对象 + TextMessage textMessage = new TextMessage(); + BeanUtils.copyProperties(textMessageTaskDTO, textMessage); + + // 插入textMessage记录并检查结果 + if (textMessageMapper.updateTextMessage(textMessage) <= 0) { + throw new ServiceException("修改短信模板失败"); + } + + // 批量创建TextMessageSuitTask对象并插入修改 + List tasks = new ArrayList<>(); + for (Long suitTaskTypeId : textMessageTaskDTO.getSuitTaskTypeIds()) { + TextMessageSuitTask task = editTextMessageSuitTask(suitTaskTypeId, textMessage.getId(), editUsername, editTime); + tasks.add(task); + } + + // 批量插入TextMessageSuitTask修改记录并检查结果 + if (!tasks.isEmpty() && textMessageMapper.updateTextMessageSuitTasks(tasks) != tasks.size()) { + throw new ServiceException("修改短信模板适用任务类型失败"); + } + + // 返回成功插入的记录数 + return 1; + } + + private TextMessageSuitTask editTextMessageSuitTask(Long suitTaskTypeId, Long textMessageId, String updateBy, Date updateAt) { + SysDictData sysDictData = sysDictDataMapper.selectDictDataById(suitTaskTypeId); + TextMessageSuitTask task = new TextMessageSuitTask(); + task.setTextMessageId(textMessageId); + task.setSuitTaskTypeId(suitTaskTypeId); + task.setSuitTaskTypeName(sysDictData.getDictLabel()); + task.setUpdateBy(updateBy); + task.setUpdateTime(updateAt); + return task; } /** @@ -73,8 +176,18 @@ public class TextMessageServiceImpl implements ITextMessageService { * @return 结果 */ @Override + @Transactional(rollbackFor = Exception.class) public int deleteTextMessageByIds(Long[] ids) { - return textMessageMapper.deleteTextMessageByIds(ids); + // 删除短信模板记录并检查结果 + if (textMessageMapper.deleteTextMessageByIds(ids) <= 0) { + throw new ServiceException("删除短信模板失败"); + } + // 删除短信模板适用任务类型记录并检查结果 + if (textMessageMapper.deleteTextMessageSuitTasks(ids) <= 0) { + throw new ServiceException("删除短信模板适用任务类型失败"); + } + // 返回成功删除的记录数 + return 1; } /** diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/wechattemplate/IWechatTemplateService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/wechattemplate/IWechatTemplateService.java index b7fa9cfb..22b35d7f 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/wechattemplate/IWechatTemplateService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/wechattemplate/IWechatTemplateService.java @@ -2,6 +2,8 @@ package com.xinelu.manage.service.wechattemplate; import com.xinelu.manage.domain.wechattemplate.WechatTemplate; import com.xinelu.manage.dto.wechattemplate.WechatTemplateDTO; +import com.xinelu.manage.dto.wechattemplate.WechatTemplateTaskDTO; +import com.xinelu.manage.vo.wechattemplate.WechatTemplateVO; import java.util.List; @@ -26,23 +28,23 @@ public interface IWechatTemplateService { * @param wechatTemplateDto 微信模板信息 * @return 微信模板信息集合 */ - public List selectWechatTemplateList(WechatTemplateDTO wechatTemplateDto); + public List selectWechatTemplateList(WechatTemplateDTO wechatTemplateDto); /** * 新增微信模板信息 * - * @param wechatTemplateDto 微信模板信息 + * @param wechatTemplateTaskDTO 微信模板信息 * @return 结果 */ - public int insertWechatTemplate(WechatTemplateDTO wechatTemplateDto); + public int insertWechatTemplate(WechatTemplateTaskDTO wechatTemplateTaskDTO); /** * 修改微信模板信息 * - * @param wechatTemplateDto 微信模板信息 + * @param wechatTemplateTaskDTO 微信模板信息 * @return 结果 */ - public int updateWechatTemplate(WechatTemplateDTO wechatTemplateDto); + public int updateWechatTemplate(WechatTemplateTaskDTO wechatTemplateTaskDTO); /** * 批量删除微信模板信息 @@ -66,5 +68,5 @@ public interface IWechatTemplateService { * @param id * @return */ - WechatTemplateDTO selectWechatTemplateDtoById(Long id); + WechatTemplateVO selectWechatTemplateDtoById(Long id); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/wechattemplate/impl/WechatTemplateServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/wechattemplate/impl/WechatTemplateServiceImpl.java index af8a1878..a9e91bf6 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/wechattemplate/impl/WechatTemplateServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/wechattemplate/impl/WechatTemplateServiceImpl.java @@ -1,5 +1,6 @@ package com.xinelu.manage.service.wechattemplate.impl; +import com.xinelu.common.core.domain.entity.SysDictData; import com.xinelu.common.exception.ServiceException; import com.xinelu.common.utils.DateUtils; import com.xinelu.common.utils.SecurityUtils; @@ -7,11 +8,15 @@ import com.xinelu.common.utils.bean.BeanUtils; import com.xinelu.manage.domain.wechattemplate.WechatTemplate; import com.xinelu.manage.domain.wechattemplatesuittask.WechatTemplateSuitTask; import com.xinelu.manage.dto.wechattemplate.WechatTemplateDTO; +import com.xinelu.manage.dto.wechattemplate.WechatTemplateTaskDTO; import com.xinelu.manage.mapper.wechattemplate.WechatTemplateMapper; import com.xinelu.manage.service.wechattemplate.IWechatTemplateService; +import com.xinelu.manage.vo.wechattemplate.WechatTemplateVO; +import com.xinelu.system.mapper.SysDictDataMapper; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -26,6 +31,9 @@ public class WechatTemplateServiceImpl implements IWechatTemplateService { @Resource private WechatTemplateMapper wechatTemplateMapper; + @Resource + private SysDictDataMapper sysDictDataMapper; + /** * 查询微信模板信息 * @@ -44,7 +52,7 @@ public class WechatTemplateServiceImpl implements IWechatTemplateService { * @return 微信模板信息 */ @Override - public List selectWechatTemplateList(WechatTemplateDTO wechatTemplateDto) { + public List selectWechatTemplateList(WechatTemplateDTO wechatTemplateDto) { return wechatTemplateMapper.selectWechatTemplateDtoList(wechatTemplateDto); } @@ -52,91 +60,113 @@ public class WechatTemplateServiceImpl implements IWechatTemplateService { /** * 新增微信模板信息 * - * @param wechatTemplateDto 微信模板信息 + * @param wechatTemplateTaskDTO 微信模板信息 * @return 结果 */ @Override - public int insertWechatTemplate(WechatTemplateDTO wechatTemplateDto) { - // 检查微信模板名称是否已存在 - if (wechatTemplateMapper.countByWechatTemplateDto(wechatTemplateDto) > 0) { + public int insertWechatTemplate(WechatTemplateTaskDTO wechatTemplateTaskDTO) { + // 检查微信名称是否已存在 + if (wechatTemplateMapper.countByWechatTemplateTaskDTO(wechatTemplateTaskDTO) > 0) { throw new ServiceException("微信模板名称已存在"); } // 设置创建者和创建时间 String currentUsername = SecurityUtils.getUsername(); Date currentTime = DateUtils.getNowDate(); - wechatTemplateDto.setCreateBy(currentUsername); - wechatTemplateDto.setCreateTime(currentTime); + wechatTemplateTaskDTO.setCreateBy(currentUsername); + wechatTemplateTaskDTO.setCreateTime(currentTime); - // 将WechatTemplateDto对象的属性复制到WechatTemplate对象 + // 将wechatTemplateTaskDTO对象的属性复制到wechatTemplate对象 WechatTemplate wechatTemplate = new WechatTemplate(); - BeanUtils.copyProperties(wechatTemplateDto, wechatTemplate); + BeanUtils.copyProperties(wechatTemplateTaskDTO, wechatTemplate); - // 插入WechatTemplate记录并检查结果 + // 插入wechatTemplate记录并检查结果 if (wechatTemplateMapper.insertWechatTemplate(wechatTemplate) <= 0) { throw new ServiceException("新增微信模板失败"); } - // 创建WechatTemplateSuitTask对象并设置属性 - WechatTemplateSuitTask wechatTemplateSuitTask = new WechatTemplateSuitTask(); - wechatTemplateSuitTask.setWechatTemplateId(wechatTemplate.getId()); - wechatTemplateSuitTask.setSuitTaskTypeId(wechatTemplateDto.getSuitTaskTypeId()); - wechatTemplateSuitTask.setSuitTaskTypeName(wechatTemplateDto.getSuitTaskTypeName()); - wechatTemplateSuitTask.setCreateBy(currentUsername); - wechatTemplateSuitTask.setCreateTime(currentTime); + // 批量创建WechatTemplateSuitTask对象并插入 + List tasks = new ArrayList<>(); + for (Long suitTaskTypeId : wechatTemplateTaskDTO.getSuitTaskTypeIds()) { + WechatTemplateSuitTask task = createWechatTempSuitTask(suitTaskTypeId, wechatTemplate.getId(), currentUsername, currentTime); + tasks.add(task); + } - // 插入WechatTemplateSuitTask记录并检查结果 - if (wechatTemplateMapper.insertWechatTemplateSuitTask(wechatTemplateSuitTask) <= 0) { + // 批量插入TextMessageSuitTask记录并检查结果 + if (!tasks.isEmpty() && wechatTemplateMapper.insertWechatTemplateSuitTask(tasks) != tasks.size()) { throw new ServiceException("新增微信模板适用任务类型失败"); } + // 返回成功插入的记录数 return 1; } + private WechatTemplateSuitTask createWechatTempSuitTask(Long suitTaskTypeId, Long wechatTempId, String createdBy, Date createdAt) { + SysDictData sysDictData = sysDictDataMapper.selectDictDataById(suitTaskTypeId); + WechatTemplateSuitTask task = new WechatTemplateSuitTask(); + task.setWechatTemplateId(wechatTempId); + task.setSuitTaskTypeId(suitTaskTypeId); + task.setSuitTaskTypeName(sysDictData.getDictLabel()); + task.setCreateBy(createdBy); + task.setCreateTime(createdAt); + return task; + } + /** * 修改微信模板信息 * - * @param wechatTemplateDto 微信模板信息 + * @param wechatTemplateTaskDTO 微信模板信息 * @return 结果 */ @Override - public int updateWechatTemplate(WechatTemplateDTO wechatTemplateDto) { + public int updateWechatTemplate(WechatTemplateTaskDTO wechatTemplateTaskDTO) { // 检查微信模板名称是否已存在 - if (wechatTemplateMapper.countByWechatTemplateDto(wechatTemplateDto) > 0) { + if (wechatTemplateMapper.countByWechatTemplateTaskDTO(wechatTemplateTaskDTO) > 0) { throw new ServiceException("微信模板名称已存在"); } // 设置修改者和修改时间 String editUsername = SecurityUtils.getUsername(); Date editTime = DateUtils.getNowDate(); - wechatTemplateDto.setUpdateBy(editUsername); - wechatTemplateDto.setUpdateTime(editTime); + wechatTemplateTaskDTO.setUpdateBy(editUsername); + wechatTemplateTaskDTO.setUpdateTime(editTime); - // 将WechatTemplateDto对象的属性复制到WechatTemplate对象 + // 将wechatTemplateTaskDTO对象的属性复制到wechatTemplate对象 WechatTemplate wechatTemplate = new WechatTemplate(); - BeanUtils.copyProperties(wechatTemplateDto, wechatTemplate); + BeanUtils.copyProperties(wechatTemplateTaskDTO, wechatTemplate); - // 修改WechatTemplate记录并检查结果 + // 修改wechatTemplate记录并检查结果 if (wechatTemplateMapper.updateWechatTemplate(wechatTemplate) <= 0) { throw new ServiceException("修改微信模板失败"); } - // 创建WechatTemplateSuitTask对象并设置属性 - WechatTemplateSuitTask wechatTemplateSuitTask = new WechatTemplateSuitTask(); - wechatTemplateSuitTask.setWechatTemplateId(wechatTemplate.getId()); - wechatTemplateSuitTask.setSuitTaskTypeId(wechatTemplateDto.getSuitTaskTypeId()); - wechatTemplateSuitTask.setSuitTaskTypeName(wechatTemplateDto.getSuitTaskTypeName()); - wechatTemplateSuitTask.setUpdateBy(editUsername); - wechatTemplateSuitTask.setUpdateTime(editTime); + // 批量创建WechatTemplateSuitTask对象并插入修改 + List tasks = new ArrayList<>(); + for (Long suitTaskTypeId : wechatTemplateTaskDTO.getSuitTaskTypeIds()) { + WechatTemplateSuitTask task = editWechatTempSuitTask(suitTaskTypeId, wechatTemplate.getId(), editUsername, editTime); + tasks.add(task); + } - // 修改WechatTemplateSuitTask记录并检查结果 - if (wechatTemplateMapper.updateWechatTemplateSuitTask(wechatTemplateSuitTask) <= 0) { + // 批量插入WechatTemplateSuitTask修改记录并检查结果 + if (!tasks.isEmpty() && wechatTemplateMapper.updateWechatTemplateSuitTask(tasks) != tasks.size()) { throw new ServiceException("修改微信模板适用任务类型失败"); } - // 返回成功修改的记录数 + + // 返回成功插入的记录数 return 1; } + private WechatTemplateSuitTask editWechatTempSuitTask(Long suitTaskTypeId, Long wechatTempId, String updateBy, Date updateAt) { + SysDictData sysDictData = sysDictDataMapper.selectDictDataById(suitTaskTypeId); + WechatTemplateSuitTask task = new WechatTemplateSuitTask(); + task.setWechatTemplateId(wechatTempId); + task.setSuitTaskTypeId(suitTaskTypeId); + task.setSuitTaskTypeName(sysDictData.getDictLabel()); + task.setUpdateBy(updateBy); + task.setUpdateTime(updateAt); + return task; + } + /** * 批量删除微信模板信息 * @@ -175,7 +205,7 @@ public class WechatTemplateServiceImpl implements IWechatTemplateService { * @return */ @Override - public WechatTemplateDTO selectWechatTemplateDtoById(Long id) { + public WechatTemplateVO selectWechatTemplateDtoById(Long id) { return wechatTemplateMapper.selectWechatTemplateDtoById(id); } } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/textmessage/TextMessageVO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/textmessage/TextMessageVO.java new file mode 100644 index 00000000..c53fa72a --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/textmessage/TextMessageVO.java @@ -0,0 +1,115 @@ +package com.xinelu.manage.vo.textmessage; + +import com.xinelu.common.annotation.Excel; +import com.xinelu.common.core.domain.BaseEntity; +import com.xinelu.manage.domain.textmessagesuittask.TextMessageSuitTask; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @author : youxilong + * @date : 2024/2/28 16:06 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "短信模板信息对象VO") +public class TextMessageVO extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + + /** + * 所属科室id + */ + @ApiModelProperty(value = "所属科室id") + @Excel(name = "所属科室id") + private Long departmentId; + + /** + * 所属科室名称 + */ + @ApiModelProperty(value = "所属科室名称") + @Excel(name = "所属科室名称") + private String departmentName; + + /** + * 病种id + */ + @ApiModelProperty(value = "病种id") + @Excel(name = "病种id") + private Long diseaseTypeId; + + /** + * 病种名称 + */ + @ApiModelProperty(value = "病种名称") + @Excel(name = "病种名称") + private String diseaseTypeName; + + /** + * 短信模板名称 + */ + @ApiModelProperty(value = "短信模板名称") + @Excel(name = "短信模板名称") + private String textMessageName; + + /** + * 短信ID + */ + @ApiModelProperty(value = "短信ID") + @Excel(name = "短信ID") + private String textMessageId; + + /** + * 短信内容 + */ + @ApiModelProperty(value = "短信内容") + @Excel(name = "短信内容") + private String textMessageContent; + + /** + * 短信通道,水滴平台:WATER_DROPLET_PLATFORM + */ + @ApiModelProperty(value = "短信通道,水滴平台:WATER_DROPLET_PLATFORM") + @Excel(name = "短信通道,水滴平台:WATER_DROPLET_PLATFORM") + private String textMessageChannel; + + /** + * 短信状态,上架:GROUNDING,下架:OFF_SHELF + */ + @ApiModelProperty(value = "短信状态,上架:GROUNDING,下架:OFF_SHELF") + @Excel(name = "短信状态,上架:GROUNDING,下架:OFF_SHELF") + private String textMessageStatus; + + /** + * 短信排序 + */ + @ApiModelProperty(value = "短信排序") + @Excel(name = "短信排序") + private Integer textMessageSort; + + /** + * 短信备注 + */ + @ApiModelProperty(value = "短信备注") + @Excel(name = "短信备注") + private String textMessageRemark; + + /** + * 短信模板适用任务类型列表 + */ + @ApiModelProperty(value = "短信模板适用任务类型列表") + private List suitTaskList; + +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/wechattemplate/WechatTemplateVO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/wechattemplate/WechatTemplateVO.java new file mode 100644 index 00000000..361dba0f --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/wechattemplate/WechatTemplateVO.java @@ -0,0 +1,112 @@ +package com.xinelu.manage.vo.wechattemplate; + +import com.xinelu.common.annotation.Excel; +import com.xinelu.common.core.domain.BaseEntity; +import com.xinelu.common.custominterface.Insert; +import com.xinelu.common.custominterface.Update; +import com.xinelu.manage.domain.textmessagesuittask.TextMessageSuitTask; +import com.xinelu.manage.domain.wechattemplatesuittask.WechatTemplateSuitTask; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import java.util.List; + +/** + * @author : youxilong + * @date : 2024/2/28 21:43 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "微信模板信息对象VO") +public class WechatTemplateVO extends BaseEntity { + private static final long serialVersionUID = 1L; + /** + * 主键id + */ + @ApiModelProperty(value = "主键id") + private Long id; + + /** + * 所属科室id + */ + @ApiModelProperty(value = "所属科室id") + @Excel(name = "所属科室id") + private Long departmentId; + + /** + * 所属科室名称 + */ + @ApiModelProperty(value = "所属科室名称") + @Excel(name = "所属科室名称") + private String departmentName; + + /** + * 病种id + */ + @ApiModelProperty(value = "病种id") + @Excel(name = "病种id") + private Long diseaseTypeId; + + /** + * 病种名称 + */ + @ApiModelProperty(value = "病种名称") + @Excel(name = "病种名称") + private String diseaseTypeName; + + /** + * 微信模板名称 + */ + @ApiModelProperty(value = "微信模板名称") + @Excel(name = "微信模板名称") + private String wechatTemplateName; + + /** + * 模板ID + */ + @ApiModelProperty(value = "模板ID") + @Excel(name = "模板ID") + private String templateId; + + /** + * 模板内容 + */ + @ApiModelProperty(value = "模板内容") + @Excel(name = "模板内容") + private String templateContent; + + /** + * 模板来源,小程序:WE_CHAT_APPLET,公众号:WE_CHAT_OFFICIAL_ACCOUNT + */ + @ApiModelProperty(value = "模板来源,小程序:WE_CHAT_APPLET,公众号:WE_CHAT_OFFICIAL_ACCOUNT") + @Excel(name = "模板来源,小程序:WE_CHAT_APPLET,公众号:WE_CHAT_OFFICIAL_ACCOUNT") + private String templateSource; + + /** + * 模板顺序 + */ + @ApiModelProperty(value = "模板顺序") + @Excel(name = "模板顺序") + private Integer templateSort; + + /** + * 模板备注 + */ + @ApiModelProperty(value = "模板备注") + @Excel(name = "模板备注") + private String templateRemark; + + /** + * 微信模板适用任务类型列表 + */ + @ApiModelProperty(value = "短信适用任务类型列表") + private List suitTaskList; +} diff --git a/postdischarge-manage/src/main/resources/mapper/manage/scriptInfo/ScriptInfoMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/scriptInfo/ScriptInfoMapper.xml index af686399..6dd00de2 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/scriptInfo/ScriptInfoMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/scriptInfo/ScriptInfoMapper.xml @@ -117,14 +117,8 @@ parameterType="com.xinelu.manage.domain.scriptInfo.ScriptInfo"> select count(*) from script_info - - department_id = #{departmentId} - and common_script_name = #{commonScriptName} - - and disease_type_id = - #{diseaseTypeId} - - + where department_id = #{departmentId} + and common_script_name = #{commonScriptName} + + + + + + + + + + + + + + + + + + + + + select id, department_id, @@ -43,68 +64,89 @@ from text_message - - + + + + + + + insert into text_message @@ -174,6 +216,17 @@ + + INSERT INTO text_message_suit_task + (text_message_id, suit_task_type_id, suit_task_type_name, create_by, create_time) + VALUES + + (#{task.textMessageId}, #{task.suitTaskTypeId}, #{task.suitTaskTypeName}, #{task.createBy}, + #{task.createTime}) + + + + update text_message @@ -225,6 +278,17 @@ where id = #{id} + + + UPDATE text_message_suit_task + SET suit_task_type_name = #{task.suitTaskTypeName}, + suit_task_type_id = #{task.suitTaskTypeId}, + update_by = #{task.updateBy}, + update_time = #{task.updateTime} + WHERE text_message_id = #{task.textMessageId} + + delete @@ -238,4 +302,11 @@ #{id} + + delete from text_message_suit_task + where text_message_id in + + #{id} + + \ No newline at end of file diff --git a/postdischarge-manage/src/main/resources/mapper/manage/wechattemplate/WechatTemplateMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/wechattemplate/WechatTemplateMapper.xml index e367fc10..59ad0887 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/wechattemplate/WechatTemplateMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/wechattemplate/WechatTemplateMapper.xml @@ -21,6 +21,26 @@ + + + + + + + + + + + + + + + + + + + + select id, department_id, @@ -91,7 +111,7 @@ where id = #{id} - select wt.id , wt.department_id, wt.department_name , @@ -103,72 +123,32 @@ wt.template_source, wt.template_sort, wt.template_remark, - wtst.suit_task_type_id AS suitTaskTypeId, - wtst.suit_task_type_name AS suitTaskTypeName, - wt.create_by, - wt.create_time, - wt.update_by, - wt.update_time + wtst.id AS taskId, + wtst.wechat_template_id, + wtst.suit_task_type_id, + wtst.suit_task_type_name from wechat_template wt left join wechat_template_suit_task wtst on wt.id = wtst.wechat_template_id - and wt.department_id = - #{departmentId} - - - and wt.department_name like concat('%', - #{departmentName}, - '%' - ) - - - and wt.disease_type_id = - #{diseaseTypeId} - - - and wt.disease_type_name like concat('%', - #{diseaseTypeName}, - '%' - ) + and wt.department_id = #{departmentId} - and wt.wechat_template_name like concat('%', - #{wechatTemplateName}, - '%' - ) + and wt.wechat_template_name like concat('%',#{wechatTemplateName},'%') - and wt.template_id = - #{templateId} - - - and wt.template_content = - #{templateContent} + and wt.template_id like concat('%',#{templateId},'%') - and wt.template_source = - #{templateSource} - - - and wt.template_sort = - #{templateSort} - - - and wt.template_remark = - #{templateRemark} - - - and wtst.suit_task_type_name= - #{suitTaskTypeName} + and wt.template_source = #{templateSource} - + select wt.id , wt.department_id, - wt.department_name, - wt.disease_type_id, + wt.department_name , + wt.disease_type_id , wt.disease_type_name, wt.wechat_template_name, wt.template_id, @@ -176,35 +156,21 @@ wt.template_source, wt.template_sort, wt.template_remark, - wtst.suit_task_type_id AS suitTaskTypeId, - wtst.suit_task_type_name AS suitTaskTypeName, - wt.create_by, - wt.create_time, - wt.update_by, - wt.update_time + wtst.id AS taskId, + wtst.wechat_template_id, + wtst.suit_task_type_id, + wtst.suit_task_type_name from wechat_template wt left join wechat_template_suit_task wtst on wt.id = wtst.wechat_template_id where wt.id = #{id} - select count(*) from wechat_template wt - left join wechat_template_suit_task wtst on wt.id = wtst.wechat_template_id - - wt.department_id = #{departmentId} - and wt.department_name = #{departmentName} - and wt.wechat_template_name = #{wechatTemplateName} - and wt.template_source = #{templateSource} - and wtst.suit_task_type_name= #{suitTaskTypeName} - - and wt.disease_type_id = - #{diseaseTypeId} - - - and wt.disease_type_name = - #{diseaseTypeName} - - + where department_id = #{departmentId} + and wechat_template_name = #{wechatTemplateName} - - insert into wechat_template_suit_task - - wechat_template_id, - - suit_task_type_id, - - suit_task_type_name, - - create_by, - - create_time, - - update_by, - - update_time, - - - - #{wechatTemplateId}, - - #{suitTaskTypeId}, - - #{suitTaskTypeName}, - - #{createBy}, - - #{createTime}, - - #{updateBy}, - - #{updateTime}, - - + + INSERT INTO wechat_template_suit_task + (wechat_template_id, suit_task_type_id, suit_task_type_name, create_by, create_time) + VALUES + + (#{task.wechatTemplateId}, #{task.suitTaskTypeId}, #{task.suitTaskTypeName}, #{task.createBy}, + #{task.createTime}) + @@ -357,28 +297,14 @@ where id = #{id} - update wechat_template_suit_task - - suit_task_type_id = - #{suitTaskTypeId}, - - suit_task_type_name= - #{suitTaskTypeName}, - - create_by = - #{createBy}, - - create_time = - #{createTime}, - - update_by = - #{updateBy}, - - update_time = - #{updateTime}, - - - where wechat_template_id =#{wechatTemplateId} + + UPDATE wechat_template_suit_task + SET suit_task_type_name = #{task.suitTaskTypeName}, + suit_task_type_id = #{task.suitTaskTypeId}, + update_by = #{task.updateBy}, + update_time = #{task.updateTime} + WHERE wechat_template_id= #{task.wechatTemplateId} + @@ -398,8 +324,8 @@ delete from wechat_template_suit_task where wechat_template_id in - - #{wechatTemplateId} + + #{id} \ No newline at end of file