模式新增 换档时间、蜂鸣提醒时间、震动提醒时间

master
382696293@qq.com 2 years ago
parent 2d4f2af247
commit 03bc97a428

@ -1,7 +1,6 @@
package com.flossom.common.core.domain.entity;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
@ -117,6 +116,12 @@ public class WxMode extends BaseEntity
private String stepThreeVideo;
private List<WxModeGear> modeGear = new ArrayList<>();
private List<WxModeGear> modeBuzzing = new ArrayList<>();
private List<WxModeGear> modeVibrate = new ArrayList<>();
public void setId(Long id)
{
@ -366,6 +371,30 @@ public class WxMode extends BaseEntity
this.stepThreeVideo = stepThreeVideo;
}
public List<WxModeGear> getModeGear() {
return modeGear;
}
public void setModeGear(List<WxModeGear> modeGear) {
this.modeGear = modeGear;
}
public List<WxModeGear> getModeBuzzing() {
return modeBuzzing;
}
public void setModeBuzzing(List<WxModeGear> modeBuzzing) {
this.modeBuzzing = modeBuzzing;
}
public List<WxModeGear> getModeVibrate() {
return modeVibrate;
}
public void setModeVibrate(List<WxModeGear> modeVibrate) {
this.modeVibrate = modeVibrate;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

@ -0,0 +1,87 @@
package com.flossom.common.core.domain.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.flossom.common.core.utils.DateUtils;
import com.flossom.common.core.web.domain.BaseEntity;
import java.time.LocalTime;
/**
*
*/
public class WxModeGear extends BaseEntity {
private Long id;
/**
*
*/
private Long modeId;
/**
*
*/
private String time;
/**
* 123
*/
private Integer type;
@JsonInclude(value = JsonInclude.Include.NON_DEFAULT)
@JsonIgnore
private Integer second;
public WxModeGear() {
}
public WxModeGear(Long id, Long modeId, String time, Integer type, Integer second) {
this.id = id;
this.modeId = modeId;
this.time = time;
this.type = type;
this.second = second;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getModeId() {
return modeId;
}
public void setModeId(Long modeId) {
this.modeId = modeId;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
this.second = DateUtils.convertTimeToSeconds(time);
}
public Integer getSecond() {
return second;
}
public void setSecond(Integer second) {
this.second = second;
this.time = DateUtils.formatMS(second);
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
}

@ -41,6 +41,16 @@ public class WxNursingLog extends BaseEntity {
*/
private Integer instrumentType;
/**
*
*/
private String instrumentModel;
/**
*
*/
private String instrumentModeName;
/**
* 线1线2线
*/
@ -391,4 +401,20 @@ public class WxNursingLog extends BaseEntity {
public void setNursingDaysYear(Integer nursingDaysYear) {
this.nursingDaysYear = nursingDaysYear;
}
public String getInstrumentModel() {
return instrumentModel;
}
public void setInstrumentModel(String instrumentModel) {
this.instrumentModel = instrumentModel;
}
public String getInstrumentModeName() {
return instrumentModeName;
}
public void setInstrumentModeName(String instrumentModeName) {
this.instrumentModeName = instrumentModeName;
}
}

@ -0,0 +1,65 @@
package com.flossom.common.core.mapper;
import com.flossom.common.core.domain.entity.WxModeGear;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* FR200 Mapper
*
* @author flossom
* @date 2024-03-15
*/
public interface WxModeGearMapper {
/**
* FR200
*
* @param id FR200
* @return FR200
*/
public WxModeGear selectWxModeGearById(Long id);
/**
* FR200
*
* @param wxModeGear FR200
* @return FR200
*/
public List<WxModeGear> selectWxModeGearList(WxModeGear wxModeGear);
/**
* FR200
*
* @param wxModeGear FR200
* @return
*/
public int insertWxModeGear(WxModeGear wxModeGear);
/**
* FR200
*
* @param wxModeGear FR200
* @return
*/
public int updateWxModeGear(WxModeGear wxModeGear);
/**
* FR200
*
* @param id FR200
* @return
*/
public int deleteWxModeGearById(Long id);
/**
* FR200
*
* @param ids
* @return
*/
public int deleteWxModeGearByIds(Long[] ids);
void deleteWxModeGearByModeId(@Param("modeId") Long modeId);
}

@ -204,5 +204,17 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
return String.format("%02d:%02d", minutes, remainingSeconds);
}
/**
*
*
* @param minuteAndSecond 05:30
* @return
*/
public static int convertTimeToSeconds(String minuteAndSecond) {
String[] parts = minuteAndSecond.split(":");
int minutes = Integer.parseInt(parts[0]);
int second = Integer.parseInt(parts[1]);
return minutes * 60 + second;
}
}

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.flossom.common.core.mapper.WxModeGearMapper">
<resultMap type="WxModeGear" id="WxModeGearResult">
<result property="id" column="id" />
<result property="modeId" column="mode_id" />
<result property="second" column="second" />
<result property="type" column="type" />
<result property="createTime" column="create_time" />
<result property="createBy" column="create_by" />
</resultMap>
<sql id="selectWxModeGearVo">
select id, mode_id, second, type, create_time, create_by from wx_mode_gear
</sql>
<select id="selectWxModeGearList" parameterType="WxModeGear" resultMap="WxModeGearResult">
<include refid="selectWxModeGearVo"/>
<where>
<if test="modeId != null "> and mode_id = #{modeId}</if>
<if test="second != null "> and second = #{second}</if>
<if test="type != null "> and type = #{type}</if>
</where>
</select>
<select id="selectWxModeGearById" parameterType="Long" resultMap="WxModeGearResult">
<include refid="selectWxModeGearVo"/>
where id = #{id}
</select>
<insert id="insertWxModeGear" parameterType="WxModeGear" useGeneratedKeys="true" keyProperty="id">
insert into wx_mode_gear
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="modeId != null">mode_id,</if>
<if test="second != null">second,</if>
<if test="type != null">type,</if>
<if test="createTime != null">create_time,</if>
<if test="createBy != null">create_by,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="modeId != null">#{modeId},</if>
<if test="second != null">#{second},</if>
<if test="type != null">#{type},</if>
<if test="createTime != null">#{createTime},</if>
<if test="createBy != null">#{createBy},</if>
</trim>
</insert>
<update id="updateWxModeGear" parameterType="WxModeGear">
update wx_mode_gear
<trim prefix="SET" suffixOverrides=",">
<if test="modeId != null">mode_id = #{modeId},</if>
<if test="second != null">second = #{second},</if>
<if test="type != null">type = #{type},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteWxModeGearById" parameterType="Long">
delete from wx_mode_gear where id = #{id}
</delete>
<delete id="deleteWxModeGearByIds" parameterType="String">
delete from wx_mode_gear where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<delete id="deleteWxModeGearByModeId" parameterType="Long">
delete from wx_mode_gear where mode_id = #{modeId}
</delete>
</mapper>

@ -1,5 +1,6 @@
package com.flossom.system.service.impl;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@ -11,6 +12,7 @@ import com.flossom.common.core.enums.TagTypeStatusEnum;
import com.flossom.common.core.mapper.*;
import com.flossom.common.core.utils.DateUtils;
import com.flossom.common.core.utils.StringUtils;
import com.flossom.common.security.utils.SecurityUtils;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -35,6 +37,9 @@ public class WxModeServiceImpl implements IWxModeService
private WxModeServiceInfoMapper wxModeServiceInfoMapper;
@Autowired
private WxModeCombineInfoMapper wxModeCombineInfoMapper;
@Autowired
private WxModeGearMapper wxModeGearMapper;
/**
*
*
@ -90,6 +95,15 @@ public class WxModeServiceImpl implements IWxModeService
}
}
wxMode.setCombineData(wxModeCombineInfos);
// 获取换挡配置
WxModeGear query = new WxModeGear();
query.setModeId(wxMode.getId());
List<WxModeGear> wxModeGearList = wxModeGearMapper.selectWxModeGearList(query);
if(wxModeGearList != null && wxModeGearList.size() > 0) {
wxMode.setModeGear(wxModeGearList.stream().filter(wxModeGear -> wxModeGear.getType() == 1).collect(Collectors.toList()));
wxMode.setModeBuzzing(wxModeGearList.stream().filter(wxModeGear -> wxModeGear.getType() == 2).collect(Collectors.toList()));
wxMode.setModeVibrate(wxModeGearList.stream().filter(wxModeGear -> wxModeGear.getType() == 3).collect(Collectors.toList()));
}
return wxMode;
}
@ -174,6 +188,37 @@ public class WxModeServiceImpl implements IWxModeService
wxModeCombineInfoMapper.insertWxModeCombineInfo(wxModeCombineInfo);
}
}
// 保存换挡时间设置
if(CollectionUtils.isNotEmpty(wxMode.getModeGear())) {
List<WxModeGear> modeGearList = wxMode.getModeGear();
for (WxModeGear wxModeGear: modeGearList) {
wxModeGear.setModeId(wxMode.getId());
wxModeGear.setType(1);
wxModeGear.setCreateBy(SecurityUtils.getLoginUser().getUsername());
wxModeGear.setCreateTime(DateUtils.getNowDate());
wxModeGearMapper.insertWxModeGear(wxModeGear);
}
}
if(CollectionUtils.isNotEmpty(wxMode.getModeBuzzing())) {
List<WxModeGear> modeGearList = wxMode.getModeGear();
for (WxModeGear wxModeGear: modeGearList) {
wxModeGear.setModeId(wxMode.getId());
wxModeGear.setType(2);
wxModeGear.setCreateBy(SecurityUtils.getLoginUser().getUsername());
wxModeGear.setCreateTime(DateUtils.getNowDate());
wxModeGearMapper.insertWxModeGear(wxModeGear);
}
}
if(CollectionUtils.isNotEmpty(wxMode.getModeVibrate())) {
List<WxModeGear> modeGearList = wxMode.getModeGear();
for (WxModeGear wxModeGear: modeGearList) {
wxModeGear.setModeId(wxMode.getId());
wxModeGear.setType(3);
wxModeGear.setCreateBy(SecurityUtils.getLoginUser().getUsername());
wxModeGear.setCreateTime(DateUtils.getNowDate());
wxModeGearMapper.insertWxModeGear(wxModeGear);
}
}
return i;
}
@ -253,6 +298,49 @@ public class WxModeServiceImpl implements IWxModeService
wxModeCombineInfoMapper.insertWxModeCombineInfo(wxModeCombineInfo);
}
}
// 保存换挡时间设置
if(CollectionUtils.isNotEmpty(wxMode.getModeGear())) {
List<WxModeGear> modeGearList = wxMode.getModeGear();
for (WxModeGear wxModeGear: modeGearList) {
if(wxModeGear.getId() == null) {
wxModeGear.setModeId(wxMode.getId());
wxModeGear.setType(1);
wxModeGear.setCreateBy(SecurityUtils.getLoginUser().getUsername());
wxModeGear.setCreateTime(DateUtils.getNowDate());
wxModeGearMapper.insertWxModeGear(wxModeGear);
} else {
wxModeGearMapper.updateWxModeGear(wxModeGear);
}
}
}
if(CollectionUtils.isNotEmpty(wxMode.getModeBuzzing())) {
List<WxModeGear> modeGearList = wxMode.getModeBuzzing();
for (WxModeGear wxModeGear: modeGearList) {
if(wxModeGear.getId() == null) {
wxModeGear.setModeId(wxMode.getId());
wxModeGear.setType(2);
wxModeGear.setCreateBy(SecurityUtils.getLoginUser().getUsername());
wxModeGear.setCreateTime(DateUtils.getNowDate());
wxModeGearMapper.insertWxModeGear(wxModeGear);
} else {
wxModeGearMapper.updateWxModeGear(wxModeGear);
}
}
}
if(CollectionUtils.isNotEmpty(wxMode.getModeVibrate())) {
List<WxModeGear> modeGearList = wxMode.getModeVibrate();
for (WxModeGear wxModeGear: modeGearList) {
if(wxModeGear.getId() == null) {
wxModeGear.setModeId(wxMode.getId());
wxModeGear.setType(3);
wxModeGear.setCreateBy(SecurityUtils.getLoginUser().getUsername());
wxModeGear.setCreateTime(DateUtils.getNowDate());
wxModeGearMapper.insertWxModeGear(wxModeGear);
} else {
wxModeGearMapper.updateWxModeGear(wxModeGear);
}
}
}
return wxModeMapper.updateWxMode(wxMode);
}

@ -215,7 +215,7 @@
<el-input v-model="form.modeDesc" placeholder="请输入模式描述" maxlength="10"/>
</el-form-item>
<el-form-item label="模式时长" prop="modeTime" v-if="form.instrumentType == 2">
<el-input v-model="form.modeTime" placeholder="请输入模式时间" maxlength="5"/>
<el-input type="number" v-model="form.modeTime" placeholder="请输入模式时间" maxlength="5" oninput ="value=value.replace(/[^\d]/g,'')"/>
</el-form-item>
<el-form-item label="模式封面" prop="modeBanner">
<el-upload
@ -352,7 +352,7 @@
<el-col :span ="12">
<el-form-item label="护理时间范围" prop="startTimeArray" label-width="110px">
<div style="position: relative">
<i class="little-red-heart el-icon-star-on"></i>
<i class="little-red-heart">*</i>
</div>
<el-time-picker
is-range
@ -374,7 +374,7 @@
<el-col :span ="12">
<el-form-item label="启动图片GIF" prop="startSourceArray" label-width="110px">
<div style="position: relative">
<i class="little-red-heart el-icon-star-on"></i>
<i class="little-red-heart">*</i>
</div>
<el-upload
:action="upload.url+'/else'"
@ -397,7 +397,7 @@
<el-col :span ="12">
<el-form-item label="暂停图片GIF" prop="stopSourceArray" label-width="110px">
<div style="position: relative">
<i class="little-red-heart el-icon-star-on"></i>
<i class="little-red-heart">*</i>
</div>
<el-upload
:action="upload.url+'/else'"
@ -451,7 +451,7 @@
<el-form-item label="使用技术" prop="technologyInfo" label-width="110px" style="margin-top: 10px">
<div style="position: relative; left: 30px">
<i class="little-red-heart2 el-icon-star-on"></i>
<i class="little-red-heart">*</i>
</div>
<el-select
v-model="item.technologyArray"
@ -470,7 +470,7 @@
</el-form-item>
<el-form-item label="模式功效" prop="effectContent" label-width="110px" style="margin-top: 10px">
<div style="position: relative; left: 30px">
<i class="little-red-heart2 el-icon-star-on"></i>
<i class="little-red-heart">*</i>
</div>
<el-input v-model="item.effectContent" placeholder="请输入模式功效" maxlength="50"/>
</el-form-item>
@ -478,7 +478,7 @@
</el-form-item>
<el-form-item v-if="form.instrumentModel == 'WL200'" label="使用技术" prop="technologyArrayMode" label-width="110px" style="margin-top: 10px">
<div style="position: relative; left: 30px">
<i class="little-red-heart2 el-icon-star-on"></i>
<i class="little-red-heart">*</i>
</div>
<el-select v-model="form.technologyArrayMode" placeholder="请选择技术" @change="technologyUpdata" clearable multiple style="width: 240px">
<el-option
@ -491,7 +491,7 @@
</el-form-item>
<el-form-item v-if="form.instrumentModel == 'WL200'" label="模式功效" prop="effectContent" label-width="110px" style="margin-top: 10px">
<div style="position: relative; left: 30px">
<i class="little-red-heart2 el-icon-star-on"></i>
<i class="little-red-heart">*</i>
</div>
<el-input v-model="form.effectContent" placeholder="请输入模式功效" maxlength="50"/>
</el-form-item>
@ -504,6 +504,90 @@
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" maxlength="50"></el-input>
</el-form-item>
<!-- 换挡时间 -->
<el-form-item v-if="form.instrumentType == 2 && form.instrumentModel=='FR200'
&& (form.modeType == 'maskPenetration' || form.modeType == 'essence') " label="换挡时间"
label-width="120px">
<div style="position: relative; left: 30px">
<i class="little-red-heart">*</i>
</div>
<el-button type="primary" @click="form.modeGear.push({time: '00:00'})">添加</el-button>
<div v-for="(item,index) of form.modeGear">
<el-form-item label="时间" prop="modeGear" label-width="110px" style="margin-top: 10px">
<el-row>
<el-col :span ="12">
<el-time-select
v-model="item.time"
:picker-options="{
start: '00:00',
step: '00:01',
end: '60:00'
}"
placeholder="选择时间">
</el-time-select>
</el-col>
<el-col :span ="12">
<el-form-item style="margin-left: 38%">
<el-button type="primary" @click="form.modeGear.splice(index, 1)">删除</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form-item>
</div>
</el-form-item>
<!-- 蜂鸣提醒时间 -->
<el-form-item v-if="form.instrumentType == 2 && form.instrumentModel=='FR200'" label="蜂鸣提醒时间" label-width="120px">
<el-button type="primary" @click="form.modeBuzzing.push({time: '00:00'})">添加</el-button>
<div v-for="(item,index) of form.modeBuzzing">
<el-form-item label="时间" prop="modeBuzzing" label-width="110px" style="margin-top: 10px">
<el-row>
<el-col :span ="12">
<el-time-select
v-model="item.time"
:picker-options="{
start: '00:00',
step: '00:01',
end: '60:00'
}"
placeholder="选择时间">
</el-time-select>
</el-col>
<el-col :span ="12">
<el-form-item style="margin-left: 38%">
<el-button type="primary" @click="form.modeBuzzing.splice(index, 1)">删除</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form-item>
</div>
</el-form-item>
<!-- 震动提醒时间 -->
<el-form-item v-if="form.instrumentType == 2 && form.instrumentModel=='FR200'" label="震动提醒时间" label-width="120px">
<el-button type="primary" @click="form.modeVibrate.push({time: '00:00'})">添加</el-button>
<div v-for="(item,index) of form.modeVibrate">
<el-form-item label="时间" prop="modeVibrate" label-width="110px" style="margin-top: 10px">
<el-row>
<el-col :span ="12">
<el-time-select
v-model="item.time"
:picker-options="{
start: '00:00',
step: '00:01',
end: '60:00'
}"
placeholder="选择时间">
</el-time-select>
</el-col>
<el-col :span ="12">
<el-form-item style="margin-left: 38%">
<el-button type="primary" @click="form.modeVibrate.splice(index, 1)">删除</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form-item>
</div>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -746,6 +830,12 @@ export default {
stepOneVideo: null,
stepTwoVideo: null,
stepThreeVideo: null,
//
modeGear: [],
//
modeBuzzing:[],
//
modeVibrate:[],
};
this.resetForm("form");
this.bannerList = [];
@ -950,6 +1040,22 @@ export default {
if(this.form.technologyArrayMode!=null &&this.form.technologyArrayMode.length > 0) {
this.form.technologyInfo = this.form.technologyArrayMode.join(",");
}
//
if(this.form.instrumentType == 2 && this.form.instrumentModel=='FR200'
&& (this.form.modeType == 'maskPenetration' || this.form.modeType == 'essence')) {
if(this.form.modeGear === undefined || this.form.modeGear.length == 0) {
this.$message.error("请填写换挡时间");
return;
}
let modeGearArr = this.form.modeGear;
for (let i = 0; i < modeGearArr.length; i++) {
if(modeGearArr[i].time == null) {
this.$message.error("请填写换挡时间");
return;
}
}
}
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
@ -1286,17 +1392,9 @@ export default {
<style lang="scss" scoped>
.little-red-heart {
position: absolute;
top: 12px;
left: -108px;
color: #ff4949;
font-size: 7px;
}
.little-red-heart2 {
position: absolute;
top: 12px;
left: -108px;
top: 2px;
left: -109px;
color: #ff4949;
font-size: 7px;
font-size: 16px;
}
</style>

Loading…
Cancel
Save