From 45a1cd5ed1b9c0b8f0b65c740608e6e8cec64ffe Mon Sep 17 00:00:00 2001 From: "382696293@qq.com" <382696293@qq.com> Date: Tue, 9 Jan 2024 17:00:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=AA=E5=99=A8=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E5=9B=9E=E6=98=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/domain/entity/WxInstrument.java | 26 +- .../core/domain/req/WxInstrumentSaveReq.java | 388 ++++++++++++++++++ .../controller/WxInstrumentController.java | 34 +- .../src/views/system/instrument/index.vue | 126 ++++-- 4 files changed, 524 insertions(+), 50 deletions(-) create mode 100644 flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxInstrumentSaveReq.java diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxInstrument.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxInstrument.java index 31f2fc0..87004da 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxInstrument.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxInstrument.java @@ -1,5 +1,7 @@ package com.flossom.common.core.domain.entity; +import java.time.LocalDateTime; +import java.time.LocalTime; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; @@ -74,14 +76,14 @@ public class WxInstrument extends BaseEntity { /** * 额外打卡时间开始 */ - @JsonFormat(pattern = "yyyy-MM-dd") - private Date startTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startTime; /** * 额外打卡时间结束 */ - @JsonFormat(pattern = "yyyy-MM-dd") - private Date endTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; /** * 标签ID(xxxx,xxxx,xxx) @@ -116,8 +118,8 @@ public class WxInstrument extends BaseEntity { /** * 护理时长 */ - @JsonFormat(pattern = "yyyy-MM-dd") - private Date nursingTime; + @JsonFormat(pattern = "HH:mm:ss") + private LocalTime nursingTime; /** * iot版本 @@ -264,19 +266,19 @@ public class WxInstrument extends BaseEntity { return extraClockCredit; } - public void setStartTime(Date startTime) { + public void setStartTime(LocalDateTime startTime) { this.startTime = startTime; } - public Date getStartTime() { + public LocalDateTime getStartTime() { return startTime; } - public void setEndTime(Date endTime) { + public void setEndTime(LocalDateTime endTime) { this.endTime = endTime; } - public Date getEndTime() { + public LocalDateTime getEndTime() { return endTime; } @@ -328,11 +330,11 @@ public class WxInstrument extends BaseEntity { return sceneNames; } - public void setNursingTime(Date nursingTime) { + public void setNursingTime(LocalTime nursingTime) { this.nursingTime = nursingTime; } - public Date getNursingTime() { + public LocalTime getNursingTime() { return nursingTime; } diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxInstrumentSaveReq.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxInstrumentSaveReq.java new file mode 100644 index 0000000..335ab96 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxInstrumentSaveReq.java @@ -0,0 +1,388 @@ +package com.flossom.common.core.domain.req; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.flossom.common.core.web.domain.BaseEntity; +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; +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.Date; +import java.util.List; + +/** + * 仪器列对象 wx_instrument 保存对象 + * + * @author flossom + * @date 2024-01-06 + */ +public class WxInstrumentSaveReq { + + /** + * 仪器ID + */ + private Long id; + + /** + * 仪器名称 + */ + @NotBlank(message = "请输入仪器名称") + @Length(min = 1, message = "请输入仪器名称") + private String name; + + /** + * 仪器:1、普通仪器 2、iot仪器 + */ + @NotBlank(message = "请选择仪器类型") + private Integer type; + + /** + * iot仪器特有:仪器型号 + */ + @NotBlank(message = "请输入仪器型号") + @Length(min = 1, message = "请输入仪器型号") + private String model; + + /** + * 仪器封面(图片地址) + */ + @NotBlank(message = "请上传仪器封面") + private String banner; + + /** + * 仪器logo图(图片地址) + */ + @NotBlank(message = "请上传仪器logo") + private String logo; + + /** + * 序列号位置图片(图片地址) + */ + @NotBlank(message = "请上传仪器序列号图片") + private String serial; + + /** + * 保修日期 + */ + @NotNull(message = "请输入保修日期") + private Long guarantee; + + /** + * 日常打卡获得积分 + */ + @NotNull(message = "请输入日常打卡获得积分") + private Long dailyClockCredit; + + /** + * 额外打卡奖励积分 + */ + private Long extraClockCredit; + + /** + * 是否开启额外打卡奖励 + */ + @NotNull(message = "请选择是否开启额外打卡奖励") + private Long isExtraClock; + + @NotNull(message = "请选择额外打卡时间范围") + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private List extraClockTimeRange; + + /** + * 场景ID(xxxx,xxxx,xxx) + */ + private String sceneIds; + + /** + * 场景名称(xxx,xxx,xxx) + */ + private String sceneNames; + + /** + * 护理时长 + */ + @NotNull(message = "请选择护理时间") + @JsonFormat(pattern = "HH:mm:ss") + private LocalTime nursingTime; + + /** + * iot版本 + */ + private String iotVersion; + + /** + * iot升级数据文件 + */ + private String iotUpgradeData; + + /** + * 是否开启扫机身码:0、关闭 1、开启 + */ + private Integer isScanCode; + + /** + * 是否支持购买:0、不支持 1、支持 + */ + @NotNull(message = "请选择是否支持购买") + private Integer isPurchase; + + /** + * 商城小程序appid + */ + private String shoppingAppid; + + /** + * 商城小程序path + */ + private String shoppingPath; + + /** + * 蓝牙连接中图片 + */ + private String bluetoothConnecting; + + /** + * 蓝牙关闭图片 + */ + private String bluetoothClosed; + + /** + * iot版本升级说明 + */ + private String iotVersionUpgrade; + + /** + * 排序:值越大,排序越前 + */ + @NotNull(message = "请输入排序") + private Long sortNo; + + /** + * 手动绑定介绍图片 + */ + private String manualCodeBinding; + + /** + * 扫码绑定介绍图片 + */ + private String scanCodeBinding; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + public String getBanner() { + return banner; + } + + public void setBanner(String banner) { + this.banner = banner; + } + + public String getLogo() { + return logo; + } + + public void setLogo(String logo) { + this.logo = logo; + } + + public String getSerial() { + return serial; + } + + public void setSerial(String serial) { + this.serial = serial; + } + + public Long getGuarantee() { + return guarantee; + } + + public void setGuarantee(Long guarantee) { + this.guarantee = guarantee; + } + + public Long getDailyClockCredit() { + return dailyClockCredit; + } + + public void setDailyClockCredit(Long dailyClockCredit) { + this.dailyClockCredit = dailyClockCredit; + } + + public Long getExtraClockCredit() { + return extraClockCredit; + } + + public void setExtraClockCredit(Long extraClockCredit) { + this.extraClockCredit = extraClockCredit; + } + + public Long getIsExtraClock() { + return isExtraClock; + } + + public void setIsExtraClock(Long isExtraClock) { + this.isExtraClock = isExtraClock; + } + + public List getExtraClockTimeRange() { + return extraClockTimeRange; + } + + public void setExtraClockTimeRange(List extraClockTimeRange) { + this.extraClockTimeRange = extraClockTimeRange; + } + + public String getSceneIds() { + return sceneIds; + } + + public void setSceneIds(String sceneIds) { + this.sceneIds = sceneIds; + } + + public String getSceneNames() { + return sceneNames; + } + + public void setSceneNames(String sceneNames) { + this.sceneNames = sceneNames; + } + + public LocalTime getNursingTime() { + return nursingTime; + } + + public void setNursingTime(LocalTime nursingTime) { + this.nursingTime = nursingTime; + } + + public String getIotVersion() { + return iotVersion; + } + + public void setIotVersion(String iotVersion) { + this.iotVersion = iotVersion; + } + + public String getIotUpgradeData() { + return iotUpgradeData; + } + + public void setIotUpgradeData(String iotUpgradeData) { + this.iotUpgradeData = iotUpgradeData; + } + + public Integer getIsScanCode() { + return isScanCode; + } + + public void setIsScanCode(Integer isScanCode) { + this.isScanCode = isScanCode; + } + + public Integer getIsPurchase() { + return isPurchase; + } + + public void setIsPurchase(Integer isPurchase) { + this.isPurchase = isPurchase; + } + + public String getShoppingAppid() { + return shoppingAppid; + } + + public void setShoppingAppid(String shoppingAppid) { + this.shoppingAppid = shoppingAppid; + } + + public String getShoppingPath() { + return shoppingPath; + } + + public void setShoppingPath(String shoppingPath) { + this.shoppingPath = shoppingPath; + } + + public String getBluetoothConnecting() { + return bluetoothConnecting; + } + + public void setBluetoothConnecting(String bluetoothConnecting) { + this.bluetoothConnecting = bluetoothConnecting; + } + + public String getBluetoothClosed() { + return bluetoothClosed; + } + + public void setBluetoothClosed(String bluetoothClosed) { + this.bluetoothClosed = bluetoothClosed; + } + + public String getIotVersionUpgrade() { + return iotVersionUpgrade; + } + + public void setIotVersionUpgrade(String iotVersionUpgrade) { + this.iotVersionUpgrade = iotVersionUpgrade; + } + + public Long getSortNo() { + return sortNo; + } + + public void setSortNo(Long sortNo) { + this.sortNo = sortNo; + } + + public String getManualCodeBinding() { + return manualCodeBinding; + } + + public void setManualCodeBinding(String manualCodeBinding) { + this.manualCodeBinding = manualCodeBinding; + } + + public String getScanCodeBinding() { + return scanCodeBinding; + } + + public void setScanCodeBinding(String scanCodeBinding) { + this.scanCodeBinding = scanCodeBinding; + } +} diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxInstrumentController.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxInstrumentController.java index 7dde24e..a60cfb7 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxInstrumentController.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxInstrumentController.java @@ -2,12 +2,16 @@ package com.flossom.system.controller; import com.flossom.common.core.domain.entity.WxInstrument; import com.flossom.common.core.domain.req.WxInstrumentReq; +import com.flossom.common.core.domain.req.WxInstrumentSaveReq; +import com.flossom.common.core.exception.ServiceException; +import com.flossom.common.core.utils.StringUtils; import com.flossom.common.core.web.controller.BaseController; import com.flossom.common.core.web.domain.AjaxResult; import com.flossom.common.core.web.page.TableDataInfo; import com.flossom.common.log.annotation.Log; import com.flossom.common.log.enums.BusinessType; import com.flossom.common.security.annotation.RequiresPermissions; +import com.flossom.common.security.utils.SecurityUtils; import com.flossom.system.service.IWxInstrumentService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -61,7 +65,35 @@ public class WxInstrumentController extends BaseController { @RequiresPermissions("system:instrument:add") @Log(title = "仪器列", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody WxInstrument wxInstrument) { + public AjaxResult add(@RequestBody WxInstrumentSaveReq wxInstrumentSaveReq) { + // 开启额外打开奖励 + if (wxInstrumentSaveReq.getIsExtraClock() == 1) { + if (wxInstrumentSaveReq.getExtraClockCredit() == null + || wxInstrumentSaveReq.getExtraClockTimeRange() == null + || wxInstrumentSaveReq.getExtraClockTimeRange().size() != 2) { + throw new ServiceException("请输入额外打卡奖励或者选择额外打卡时间"); + } + } + + // 仪器类型:IOT仪器 + if (wxInstrumentSaveReq.getType() == 2) { + if (StringUtils.isBlank(wxInstrumentSaveReq.getModel())) { + throw new ServiceException("请选择仪器类型"); + } + } + + // 支持购买 + if (wxInstrumentSaveReq.getIsPurchase() == 1) { + if (StringUtils.isBlank(wxInstrumentSaveReq.getShoppingAppid()) + || StringUtils.isBlank(wxInstrumentSaveReq.getShoppingPath())) { + throw new ServiceException("请输入购买商城APPID和商城PATH"); + } + } + WxInstrument wxInstrument = new WxInstrument(); + BeanUtils.copyProperties(wxInstrumentSaveReq, wxInstrument); + wxInstrument.setStartTime(wxInstrumentSaveReq.getExtraClockTimeRange().get(0)); + wxInstrument.setEndTime(wxInstrumentSaveReq.getExtraClockTimeRange().get(1)); + wxInstrument.setCreateBy(SecurityUtils.getUsername()); return toAjax(wxInstrumentService.insertWxInstrument(wxInstrument)); } diff --git a/flossom-ui/src/views/system/instrument/index.vue b/flossom-ui/src/views/system/instrument/index.vue index e51e292..b009e2d 100644 --- a/flossom-ui/src/views/system/instrument/index.vue +++ b/flossom-ui/src/views/system/instrument/index.vue @@ -613,54 +613,54 @@ export default { scanCodeBinding: null, }; /* 仪器封面 */ - this.bannerFile= { + this.bannerFile = { uploadHide: false, - dialogImageUrl: '', - dialogVisible: false, - disabled: false, - fileList: [], - }, + dialogImageUrl: '', + dialogVisible: false, + disabled: false, + fileList: [], + } /* 仪器logo */ - this.logoFile= { + this.logoFile = { uploadHide: false, - dialogImageUrl: '', - dialogVisible: false, - disabled: false, - fileList: [], - }, + dialogImageUrl: '', + dialogVisible: false, + disabled: false, + fileList: [], + } /* 序列号图片 */ - this.serialFile= { + this.serialFile = { uploadHide: false, - dialogImageUrl: '', - dialogVisible: false, - disabled: false, - fileList: [], - }, + dialogImageUrl: '', + dialogVisible: false, + disabled: false, + fileList: [], + } /* 手写绑定介绍视频/图片 */ - this.manualFile= { + this.manualFile = { uploadHide: false, - fileList: [], - }, + fileList: [], + } /* 扫码绑定介绍视频/图片 */ - this.scanFile= { + this.scanFile = { uploadHide: false, - fileList: [], - }, + fileList: [], + } /* iot升级数据文件 */ - this.iotUpgradeFile= { + this.iotUpgradeFile = { uploadHide: false, - fileList: [], - }, + fileList: [], + } /* 蓝牙连接文件 */ - this.bluetoothConnectFile= { + this.bluetoothConnectFile = { uploadHide: false, - fileList: [], - }, + fileList: [], + } /* 蓝牙断开连接文件 */ - this.bluetoothClosedFile= { + this.bluetoothClosedFile = { uploadHide: false, - fileList: [], - }, + fileList: [], + } // this.form.iotVersionUpgrade = null, this.resetForm("form"); }, @@ -692,6 +692,59 @@ export default { const id = row.id || this.ids getInstrument(id).then(response => { this.form = response.data; + // 仪器封面回显 + this.bannerFile = { + uploadHide: true, + dialogImageUrl: this.form.banner, + dialogVisible: false, + disabled: false, + fileList: [{name: '', url: this.form.banner}], + } + /* 仪器logo */ + this.logoFile = { + uploadHide: true, + dialogImageUrl: this.form.logo, + dialogVisible: false, + disabled: false, + fileList: [{name: '', url: this.form.logo}], + } + /* 序列号图片 */ + this.serialFile = { + uploadHide: true, + dialogImageUrl: this.form.serial, + dialogVisible: false, + disabled: false, + fileList: [{name: '', url: this.form.serial}], + } + /* 手写绑定介绍视频/图片 */ + this.manualFile = { + uploadHide: true, + fileList: [{name: '手写绑定介绍视频/图片', url: this.form.manualCodeBinding}], + } + /* 扫码绑定介绍视频/图片 */ + this.scanFile = { + uploadHide: true, + fileList: [{name: '扫码绑定介绍视频/图片', url: this.form.scanCodeBinding}], + } + /* iot升级数据文件 */ + this.iotUpgradeFile = { + uploadHide: true, + fileList: [{name: 'iot升级数据文件', url: this.form.iotUpgradeData}], + } + /* 蓝牙连接文件 */ + this.bluetoothConnectFile = { + uploadHide: true, + fileList: [{name: '蓝牙连接文件', url: this.form.bluetoothConnecting}], + } + /* 蓝牙断开连接文件 */ + this.bluetoothClosedFile = { + uploadHide: false, + fileList: [{name: '蓝牙断开连接文件', url: this.form.bluetoothClosed}], + } + // 额外打卡时间 + if (this.form.isExtraClock == 1) { + this.form.extraClockTimeRange = [response.data.startTime, response.data.endTime]; + } this.open = true; this.title = "修改仪器列"; }); @@ -701,19 +754,18 @@ export default { this.$refs["form"].validate(valid => { if (valid) { if (this.form.id != null) { - this.$modal.msgSuccess("修改成功"); + this.$modal.msgSuccess("修改成功"); // updateInstrument(this.form).then(response => { // this.$modal.msgSuccess("修改成功"); // this.open = false; // this.getList(); // }); } else { - console.log(this.form) - /*addInstrument(this.form).then(response => { + addInstrument(this.form).then(response => { this.$modal.msgSuccess("新增成功"); this.open = false; this.getList(); - });*/ + }); } } });