Merge remote-tracking branch 'origin/feature-20240104' into feature-20240104

master
elliott 2 years ago
commit 43ea1f0f8b

@ -2,11 +2,11 @@ package com.flossom.common.core.domain.entity;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.temporal.ChronoField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.flossom.common.core.utils.DateUtils;
import com.flossom.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* wx_instrument
@ -364,7 +364,7 @@ public class WxInstrument extends BaseEntity {
this.nursingTime = nursingTime;
// 将 localTime 转为 分秒 格式
if (nursingTime != null) {
this.nursingTimeStr = String.format("%02d:%02d", nursingTime.getMinute(), nursingTime.getSecond());
this.nursingTimeStr = DateUtils.formatMS(nursingTime.getLong(ChronoField.SECOND_OF_DAY));
}
}

@ -25,10 +25,6 @@ public class WxInstrumentSerial extends BaseEntity
@Excel(name = "仪器id")
private Long instrumentId;
/** 仪器名称 */
@Excel(name = "仪器名称")
private String instrumentName;
/** 来源 */
@Excel(name = "来源")
private String source;
@ -55,6 +51,9 @@ public class WxInstrumentSerial extends BaseEntity
private String queryInstrumentIds;
/** 仪器名称 */
private String instrumentName;
/**
*
*/
@ -166,19 +165,4 @@ public class WxInstrumentSerial extends BaseEntity
this.instrumentSerialIdList = instrumentSerialIdList;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("instrumentId", getInstrumentId())
.append("instrumentName", getInstrumentName())
.append("serial", getSerial())
.append("bindingStatus", getBindingStatus())
.append("validStatus", getValidStatus())
.append("status", getStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("remark", getRemark())
.toString();
}
}

@ -26,15 +26,25 @@ public class WxModeServiceInfo extends BaseEntity
private Long modeId;
/** 服务开始时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "HH:mm:ss")
@Excel(name = "服务开始时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date serviceStartTime;
/**
*
*/
private String serviceStartTimeStr;
/** 服务结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "HH:mm:ss")
@Excel(name = "服务结束时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date serviceEndTime;
/**
*
*/
private String serviceEndTimeStr;
/** 启动图片资源 */
@Excel(name = "启动图片资源")
private String startSource;
@ -109,6 +119,22 @@ public class WxModeServiceInfo extends BaseEntity
this.modeId = modeId;
}
public String getServiceStartTimeStr() {
return serviceStartTimeStr;
}
public void setServiceStartTimeStr(String serviceStartTimeStr) {
this.serviceStartTimeStr = serviceStartTimeStr;
}
public String getServiceEndTimeStr() {
return serviceEndTimeStr;
}
public void setServiceEndTimeStr(String serviceEndTimeStr) {
this.serviceEndTimeStr = serviceEndTimeStr;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

@ -81,6 +81,45 @@ public class WxNursingLog extends BaseEntity {
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private Long status;
@Excel(name = "陪伴模式")
private Integer accompanyMode;
@Excel(name = "挡位1")
private Integer gearPositionOne;
@Excel(name = "挡位2")
private Integer gearPositionTwo;
@Excel(name = "挡位3")
private Integer gearPositionThree;
@Excel(name = "挡位4")
private Integer gearPositionFour;
@Excel(name = "能量总值")
private Integer energyValue;
@Excel(name = "水分数据1")
private Integer waterDataOne;
@Excel(name = "水分数据2")
private Integer waterDataTwo;
@Excel(name = "水分数据3")
private Integer waterDataThree;
@Excel(name = "总护理天数")
private Integer nursingDays;
@Excel(name = "本周护理天数")
private Integer nursingDaysWeek;
@Excel(name = "本月护理天数")
private Integer nursingDaysMonth;
@Excel(name = "本年护理天数")
private Integer nursingDaysYear;
/**
* 使
*/
@ -248,4 +287,108 @@ public class WxNursingLog extends BaseEntity {
public void setInstrumentBindingTime(Date instrumentBindingTime) {
this.instrumentBindingTime = instrumentBindingTime;
}
public Integer getAccompanyMode() {
return accompanyMode;
}
public void setAccompanyMode(Integer accompanyMode) {
this.accompanyMode = accompanyMode;
}
public Integer getGearPositionOne() {
return gearPositionOne;
}
public void setGearPositionOne(Integer gearPositionOne) {
this.gearPositionOne = gearPositionOne;
}
public Integer getGearPositionTwo() {
return gearPositionTwo;
}
public void setGearPositionTwo(Integer gearPositionTwo) {
this.gearPositionTwo = gearPositionTwo;
}
public Integer getGearPositionThree() {
return gearPositionThree;
}
public void setGearPositionThree(Integer gearPositionThree) {
this.gearPositionThree = gearPositionThree;
}
public Integer getGearPositionFour() {
return gearPositionFour;
}
public void setGearPositionFour(Integer gearPositionFour) {
this.gearPositionFour = gearPositionFour;
}
public Integer getEnergyValue() {
return energyValue;
}
public void setEnergyValue(Integer energyValue) {
this.energyValue = energyValue;
}
public Integer getWaterDataOne() {
return waterDataOne;
}
public void setWaterDataOne(Integer waterDataOne) {
this.waterDataOne = waterDataOne;
}
public Integer getWaterDataTwo() {
return waterDataTwo;
}
public void setWaterDataTwo(Integer waterDataTwo) {
this.waterDataTwo = waterDataTwo;
}
public Integer getWaterDataThree() {
return waterDataThree;
}
public void setWaterDataThree(Integer waterDataThree) {
this.waterDataThree = waterDataThree;
}
public Integer getNursingDays() {
return nursingDays;
}
public void setNursingDays(Integer nursingDays) {
this.nursingDays = nursingDays;
}
public Integer getNursingDaysWeek() {
return nursingDaysWeek;
}
public void setNursingDaysWeek(Integer nursingDaysWeek) {
this.nursingDaysWeek = nursingDaysWeek;
}
public Integer getNursingDaysMonth() {
return nursingDaysMonth;
}
public void setNursingDaysMonth(Integer nursingDaysMonth) {
this.nursingDaysMonth = nursingDaysMonth;
}
public Integer getNursingDaysYear() {
return nursingDaysYear;
}
public void setNursingDaysYear(Integer nursingDaysYear) {
this.nursingDaysYear = nursingDaysYear;
}
}

@ -316,24 +316,5 @@ public class WxUserInstrument extends BaseEntity
this.queryString = queryString;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("userId", getUserId())
.append("serial", getSerial())
.append("instrumentId", getInstrumentId())
.append("instrumentName", getInstrumentName())
.append("serialImage", getSerialImage())
.append("guarantee", getGuarantee())
.append("guaranteeEndtime", getGuaranteeEndtime())
.append("bindingStatus", getBindingStatus())
.append("status", getStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
}

@ -0,0 +1,320 @@
package com.flossom.common.core.domain.export;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.flossom.common.core.annotation.Excel;
import com.flossom.common.core.web.domain.BaseEntity;
import java.time.LocalTime;
import java.util.Date;
/**
*
*
* @author flossom
* @date 2024-01-29
*/
public class WxNursingLogExport {
@Excel(name = "序号")
private Long id;
@Excel(name = "会员昵称")
private String nickname;
@Excel(name = "用户编号")
private Long userId;
@Excel(name = "手机号")
private String mobile;
@Excel(name = "仪器名称")
private String instrumentName;
@Excel(name = "模式")
private String modeName;
/**
* 线1线2线
*/
@Excel(name = "在线状态", readConverterExp = "1=在线,2=离线", type = Excel.Type.ALL, combo = {"1", "2"})
private Long online;
@Excel(name = "陪伴模式")
private Integer accompanyMode;
@Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@Excel(name = "护理时长", dateFormat = "HH:mm:ss")
private LocalTime nursingTime;
@Excel(name = "挡位1")
private Integer gearPositionOne;
@Excel(name = "挡位2")
private Integer gearPositionTwo;
@Excel(name = "挡位3")
private Integer gearPositionThree;
@Excel(name = "挡位4")
private Integer gearPositionFour;
@Excel(name = "能量总值")
private Integer energyValue;
@Excel(name = "水分数据1")
private Integer waterDataOne;
@Excel(name = "水分数据2")
private Integer waterDataTwo;
@Excel(name = "水分数据3")
private Integer waterDataThree;
@Excel(name = "总护理天数")
private Integer nursingDays;
@Excel(name = "本周护理天数")
private Integer nursingDaysWeek;
@Excel(name = "本月护理天数")
private Integer nursingDaysMonth;
@Excel(name = "本年护理天数")
private Integer nursingDaysYear;
@Excel(name = "最新护理时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
@Excel(name = "小程序标签")
private String miniProgramTagListStr;
@Excel(name = "外部标签")
private String wecomTagListStr;
@Excel(name = "用户注册时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date userMemberCreateTime;
@Excel(name = "仪器绑定时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date instrumentBindingTime;
public WxNursingLogExport() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getInstrumentName() {
return instrumentName;
}
public void setInstrumentName(String instrumentName) {
this.instrumentName = instrumentName;
}
public String getModeName() {
return modeName;
}
public void setModeName(String modeName) {
this.modeName = modeName;
}
public Long getOnline() {
return online;
}
public void setOnline(Long online) {
this.online = online;
}
public Integer getAccompanyMode() {
return accompanyMode;
}
public void setAccompanyMode(Integer accompanyMode) {
this.accompanyMode = accompanyMode;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public LocalTime getNursingTime() {
return nursingTime;
}
public void setNursingTime(LocalTime nursingTime) {
this.nursingTime = nursingTime;
}
public Integer getGearPositionOne() {
return gearPositionOne;
}
public void setGearPositionOne(Integer gearPositionOne) {
this.gearPositionOne = gearPositionOne;
}
public Integer getGearPositionTwo() {
return gearPositionTwo;
}
public void setGearPositionTwo(Integer gearPositionTwo) {
this.gearPositionTwo = gearPositionTwo;
}
public Integer getGearPositionThree() {
return gearPositionThree;
}
public void setGearPositionThree(Integer gearPositionThree) {
this.gearPositionThree = gearPositionThree;
}
public Integer getGearPositionFour() {
return gearPositionFour;
}
public void setGearPositionFour(Integer gearPositionFour) {
this.gearPositionFour = gearPositionFour;
}
public Integer getEnergyValue() {
return energyValue;
}
public void setEnergyValue(Integer energyValue) {
this.energyValue = energyValue;
}
public Integer getWaterDataOne() {
return waterDataOne;
}
public void setWaterDataOne(Integer waterDataOne) {
this.waterDataOne = waterDataOne;
}
public Integer getWaterDataTwo() {
return waterDataTwo;
}
public void setWaterDataTwo(Integer waterDataTwo) {
this.waterDataTwo = waterDataTwo;
}
public Integer getWaterDataThree() {
return waterDataThree;
}
public void setWaterDataThree(Integer waterDataThree) {
this.waterDataThree = waterDataThree;
}
public Integer getNursingDays() {
return nursingDays;
}
public void setNursingDays(Integer nursingDays) {
this.nursingDays = nursingDays;
}
public Integer getNursingDaysWeek() {
return nursingDaysWeek;
}
public void setNursingDaysWeek(Integer nursingDaysWeek) {
this.nursingDaysWeek = nursingDaysWeek;
}
public Integer getNursingDaysMonth() {
return nursingDaysMonth;
}
public void setNursingDaysMonth(Integer nursingDaysMonth) {
this.nursingDaysMonth = nursingDaysMonth;
}
public Integer getNursingDaysYear() {
return nursingDaysYear;
}
public void setNursingDaysYear(Integer nursingDaysYear) {
this.nursingDaysYear = nursingDaysYear;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getMiniProgramTagListStr() {
return miniProgramTagListStr;
}
public void setMiniProgramTagListStr(String miniProgramTagListStr) {
this.miniProgramTagListStr = miniProgramTagListStr;
}
public String getWecomTagListStr() {
return wecomTagListStr;
}
public void setWecomTagListStr(String wecomTagListStr) {
this.wecomTagListStr = wecomTagListStr;
}
public Date getUserMemberCreateTime() {
return userMemberCreateTime;
}
public void setUserMemberCreateTime(Date userMemberCreateTime) {
this.userMemberCreateTime = userMemberCreateTime;
}
public Date getInstrumentBindingTime() {
return instrumentBindingTime;
}
public void setInstrumentBindingTime(Date instrumentBindingTime) {
this.instrumentBindingTime = instrumentBindingTime;
}
}

@ -2,6 +2,7 @@ package com.flossom.common.core.domain.req;
import com.flossom.common.core.annotation.Excel;
import com.flossom.common.core.annotation.Excel.Type;
import com.flossom.common.core.utils.poi.InstrumentSerialValidStatusAdapter;
import java.util.Date;
@ -23,7 +24,7 @@ public class WxInstrumentSerialImportVm {
private String serial;
/** 序列号有效状态1有效0无效 */
@Excel(name = "有效状态:1有效0无效",type = Type.IMPORT, combo = {"1","0"})
@Excel(name = "有效状态:1有效0无效",type = Type.IMPORT, combo = {"有效","无效"}, handler = InstrumentSerialValidStatusAdapter.class)
private String validStatus;

@ -0,0 +1,31 @@
package com.flossom.common.core.domain.req;
import java.util.ArrayList;
import java.util.List;
public class WxNursingLogExportVm extends UserNursingLogReq {
/**
*
*/
private List<String> exportFields = new ArrayList<>();
private List<Integer> idList = new ArrayList<>();
public List<String> getExportFields() {
return exportFields;
}
public void setExportFields(List<String> exportFields) {
this.exportFields = exportFields;
}
public List<Integer> getIdList() {
return idList;
}
public void setIdList(List<Integer> idList) {
this.idList = idList;
}
}

@ -1,6 +1,7 @@
package com.flossom.common.core.mapper;
import com.flossom.common.core.domain.entity.WxInstrumentSerial;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -20,6 +21,8 @@ public interface WxInstrumentSerialMapper
*/
public WxInstrumentSerial selectWxInstrumentSerialById(Long id);
public List<WxInstrumentSerial> selectWxInstrumentSerialByIdList(@Param("idList") List<Long> idList);
/**
*
*

@ -2,6 +2,7 @@ package com.flossom.common.core.mapper;
import com.flossom.common.core.domain.entity.WxNursingLog;
import com.flossom.common.core.domain.req.UserNursingLogVm;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -61,4 +62,6 @@ public interface WxNursingLogMapper {
* @return
*/
public int deleteWxNursingLogByIds(Long[] ids);
List<WxNursingLog> selectWxNursingLogByIdList(@Param("idList") List<Integer> idList);
}

@ -180,4 +180,29 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
return Date.from(zdt.toInstant());
}
/**
* 50:40:30504030
* @param seconds
* @return
*/
public static String formatHMS(long seconds) {
long hours = seconds / 3600;
long minutes = (seconds % 3600) / 60;
long remainingSeconds = seconds % 60;
return String.format("%02d:%02d:%02d", hours, minutes, remainingSeconds);
}
/**
* 140:3014030
* @param seconds
* @return
*/
public static String formatMS(long seconds) {
long minutes = seconds / 60;
long remainingSeconds = seconds % 60;
return String.format("%02d:%02d", minutes, remainingSeconds);
}
}

@ -0,0 +1,25 @@
package com.flossom.common.core.utils.poi;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Workbook;
/**
* {@link com.flossom.common.core.domain.req.WxInstrumentSerialImportVm#validStatus}
*/
public class InstrumentSerialValidStatusAdapter implements ExcelHandlerAdapter {
@Override
public Object format(Object value, String[] args, Cell cell, Workbook wb) {
String v = (String) value;
if (StringUtils.equals(v, "有效")) {
return 1;
}
if (StringUtils.equals(v, "无效")) {
return 0;
}
return null;
}
}

@ -7,7 +7,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="WxInstrumentSerial" id="WxInstrumentSerialResult">
<result property="id" column="id" />
<result property="instrumentId" column="instrument_id" />
<result property="instrumentName" column="instrument_name" />
<result property="serial" column="serial" />
<result property="source" column="source" />
<result property="bindingStatus" column="binding_status" />
@ -19,14 +18,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectWxInstrumentSerialVo">
select id, source,instrument_id, instrument_name, serial, binding_status, valid_status, status, create_by, create_time, remark from wx_instrument_serial
select id, source,instrument_id, serial, binding_status, valid_status, status, create_by, create_time, remark from wx_instrument_serial
</sql>
<select id="selectWxInstrumentSerialList" parameterType="WxInstrumentSerial" resultMap="WxInstrumentSerialResult">
<include refid="selectWxInstrumentSerialVo"/>
<where>
<if test="instrumentId != null "> and instrument_id = #{instrumentId}</if>
<if test="instrumentName != null and instrumentName != ''"> and instrument_name like concat('%', #{instrumentName}, '%')</if>
<if test="serial != null and serial != ''"> and serial like concat('%', #{serial}, '%')</if>
<if test="source != null and source != ''"> and `source` like concat('%', #{source}, '%')</if>
<if test="bindingStatus != null "> and binding_status = #{bindingStatus}</if>
@ -62,11 +60,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where id = #{id}
</select>
<select id="selectWxInstrumentSerialByIdList" parameterType="Long" resultMap="WxInstrumentSerialResult">
<include refid="selectWxInstrumentSerialVo"/>
where id in
<foreach item="id" collection="idList" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<insert id="insertWxInstrumentSerial" parameterType="WxInstrumentSerial" useGeneratedKeys="true" keyProperty="id">
insert into wx_instrument_serial
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="instrumentId != null">instrument_id,</if>
<if test="instrumentName != null and instrumentName != ''">instrument_name,</if>
<if test="serial != null and serial != ''">serial,</if>
<if test="source != null and source != ''">`source`,</if>
<if test="bindingStatus != null">binding_status,</if>
@ -78,7 +83,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="instrumentId != null">#{instrumentId},</if>
<if test="instrumentName != null and instrumentName != ''">#{instrumentName},</if>
<if test="serial != null and serial != ''">#{serial},</if>
<if test="source != null and source != ''">#{source},</if>
<if test="bindingStatus != null">#{bindingStatus},</if>
@ -94,7 +98,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update wx_instrument_serial
<trim prefix="SET" suffixOverrides=",">
<if test="instrumentId != null">instrument_id = #{instrumentId},</if>
<if test="instrumentName != null and instrumentName != ''">instrument_name = #{instrumentName},</if>
<if test="serial != null and serial != ''">serial = #{serial},</if>
<if test="source != null and source != ''">`source` = #{source},</if>
<if test="bindingStatus != null">binding_status = #{bindingStatus},</if>
@ -111,7 +114,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update wx_instrument_serial
<trim prefix="SET" suffixOverrides=",">
<if test="instrumentId != null">instrument_id = #{instrumentId},</if>
<if test="instrumentName != null and instrumentName != ''">instrument_name = #{instrumentName},</if>
<if test="source != null and source != ''">`source` = #{source},</if>
<if test="bindingStatus != null">binding_status = #{bindingStatus},</if>
<if test="validStatus != null">valid_status = #{validStatus},</if>

@ -88,7 +88,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectWxNursingLogVo"/>
where id = #{id}
</select>
<select id="selectWxNursingLogByIdList" resultMap="WxNursingLogResult">
<include refid="selectWxNursingLogVo"/>
where id in
<foreach item="id" collection="idList" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<insert id="insertWxNursingLog" parameterType="WxNursingLog" useGeneratedKeys="true" keyProperty="id">
insert into wx_nursing_log
<trim prefix="(" suffix=")" suffixOverrides=",">

@ -9,7 +9,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="userId" column="user_id" />
<result property="serial" column="serial" />
<result property="instrumentId" column="instrument_id" />
<result property="instrumentName" column="instrument_name" />
<result property="serialImage" column="serial_image" />
<result property="guarantee" column="guarantee" />
<result property="guaranteeEndtime" column="guarantee_endtime" />
@ -23,7 +22,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectWxUserInstrumentVo">
select id, user_id, serial, instrument_id, instrument_name, serial_image, guarantee, guarantee_endtime, binding_status, status, create_by, create_time, update_by, update_time, remark from wx_user_instrument
select id, user_id, serial, instrument_id, serial_image, guarantee, guarantee_endtime, binding_status, status, create_by, create_time, update_by, update_time, remark from wx_user_instrument
</sql>
<select id="selectListByCondition" parameterType="WxUserInstrument" resultMap="WxUserInstrumentResult">
@ -60,7 +59,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="userId != null "> and user_id = #{userId}</if>
<if test="serial != null and serial != ''"> and serial like concat('%', #{serial}, '%')</if>
<if test="instrumentId != null "> and instrument_id like concat('%', #{instrumentId}, '%')</if>
<if test="instrumentName != null and instrumentName != ''"> and instrument_name like concat('%', #{instrumentName}, '%')</if>
<if test="serialImage != null and serialImage != ''"> and serial_image = #{serialImage}</if>
<if test="guarantee != null "> and guarantee = #{guarantee}</if>
<if test="guaranteeEndtime != null "> and guarantee_endtime = #{guaranteeEndtime}</if>
@ -86,6 +84,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select count(1) from wx_user_instrument
<where>
<if test="userId != null "> and user_id != #{userId}</if>
<if test="serial != null and serial != ''"> and serial = #{serial}</if>
<if test="instrumentId != null "> and instrument_id = #{instrumentId}</if>
<if test="bindingStatus != null "> and binding_status = #{bindingStatus}</if>
<if test="status != null "> and status = #{status}</if>
@ -106,7 +105,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="userId != null">user_id,</if>
<if test="serial != null and serial != ''">serial,</if>
<if test="instrumentId != null">instrument_id,</if>
<if test="instrumentName != null and instrumentName != ''">instrument_name,</if>
<if test="serialImage != null and serialImage != ''">serial_image,</if>
<if test="guarantee != null">guarantee,</if>
<if test="guaranteeEndtime != null">guarantee_endtime,</if>
@ -122,7 +120,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="userId != null">#{userId},</if>
<if test="serial != null and serial != ''">#{serial},</if>
<if test="instrumentId != null">#{instrumentId},</if>
<if test="instrumentName != null and instrumentName != ''">#{instrumentName},</if>
<if test="serialImage != null and serialImage != ''">#{serialImage},</if>
<if test="guarantee != null">#{guarantee},</if>
<if test="guaranteeEndtime != null">#{guaranteeEndtime},</if>
@ -142,7 +139,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="userId != null">user_id = #{userId},</if>
<if test="serial != null and serial != ''">serial = #{serial},</if>
<if test="instrumentId != null">instrument_id = #{instrumentId},</if>
<if test="instrumentName != null and instrumentName != ''">instrument_name = #{instrumentName},</if>
<if test="serialImage != null and serialImage != ''">serial_image = #{serialImage},</if>
<if test="guarantee != null">guarantee = #{guarantee},</if>
<if test="guaranteeEndtime != null">guarantee_endtime = #{guaranteeEndtime},</if>

@ -26,7 +26,9 @@ import java.time.Instant;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.temporal.ChronoField;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@ -199,7 +201,7 @@ public class WxInstrumentServiceImpl implements IWxInstrumentService {
/* 2.2.1、判断序列号是否被别人绑定了 */
WxUserInstrument query = new WxUserInstrument();
query.setUserId(wxUserMember.getId());
query.setInstrumentId(wxInstrumentSerial.getInstrumentId());
query.setSerial(serial);
query.setStatus(Status.OK.getCode().longValue());
query.setBindingStatus(BindingStatusEnums.BINDED.getCode());
Integer num = wxUserInstrumentMapper.selectUiByInstrumentId(query);
@ -221,7 +223,6 @@ public class WxInstrumentServiceImpl implements IWxInstrumentService {
saveEntity.setSerial(serial);
saveEntity.setSerialImage(serialImage);
saveEntity.setInstrumentId(wxInstrumentSerial.getInstrumentId());
saveEntity.setInstrumentName(wxInstrumentSerial.getInstrumentName());
saveEntity.setGuarantee(wxInstrument.getGuarantee());
if (wxInstrument.getGuarantee() != null && wxInstrument.getGuarantee() >= 0) {
Instant instant = LocalDateTime.now().plusYears(wxInstrument.getGuarantee()).atZone(ZoneId.systemDefault()).toInstant();
@ -380,7 +381,7 @@ public class WxInstrumentServiceImpl implements IWxInstrumentService {
oldUserInstrumentLog.setUserId(wxUserMember.getId());
oldUserInstrumentLog.setSerial(wxUserInstrument.getSerial());
oldUserInstrumentLog.setInstrumentId(wxUserInstrument.getInstrumentId());
oldUserInstrumentLog.setInstrumentName(wxUserInstrument.getInstrumentName());
oldUserInstrumentLog.setInstrumentName(wxInstrument.getName());
oldUserInstrumentLog.setSerialImage(wxUserInstrument.getSerialImage());
oldUserInstrumentLog.setGuarantee(wxUserInstrument.getGuarantee());
oldUserInstrumentLog.setGuaranteeEndtime(wxUserInstrument.getGuaranteeEndtime());
@ -395,7 +396,7 @@ public class WxInstrumentServiceImpl implements IWxInstrumentService {
newUserInstrumentLog.setUserId(wxUserMember.getId());
newUserInstrumentLog.setSerial(serial);
newUserInstrumentLog.setInstrumentId(wxUserInstrument.getInstrumentId());
newUserInstrumentLog.setInstrumentName(wxUserInstrument.getInstrumentName());
newUserInstrumentLog.setInstrumentName(wxInstrument.getName());
newUserInstrumentLog.setSerialImage(wxUserInstrument.getSerialImage());
newUserInstrumentLog.setGuarantee(wxUserInstrument.getGuarantee());
newUserInstrumentLog.setGuaranteeEndtime(updateEntity.getGuaranteeEndtime());
@ -460,11 +461,39 @@ public class WxInstrumentServiceImpl implements IWxInstrumentService {
// 查询 服务集合
WxModeServiceInfo wxModeServiceInfo = new WxModeServiceInfo();
wxModeServiceInfo.setModeId(wxMode.getId());
wxModeRet.setServiceData(wxModeServiceInfoMapper.selectWxModeServiceInfoList(wxModeServiceInfo));
List<WxModeServiceInfo> wxModeServiceInfoList = wxModeServiceInfoMapper.selectWxModeServiceInfoList(wxModeServiceInfo);
if (wxModeServiceInfoList != null && wxModeServiceInfoList.size() > 0) {
for (WxModeServiceInfo modeServiceInfo : wxModeServiceInfoList) {
if (modeServiceInfo.getServiceStartTime() != null) {
Date date = wxModeServiceInfo.getServiceStartTime();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
modeServiceInfo.setServiceStartTimeStr(
DateUtils.formatMS(calendar.get(Calendar.HOUR_OF_DAY) * 60 * 60
+ calendar.get(Calendar.MINUTE) * 60
+ calendar.get(Calendar.SECOND)
)
);
}
if (modeServiceInfo.getServiceEndTime() != null) {
Date date = wxModeServiceInfo.getServiceEndTime();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
modeServiceInfo.setServiceEndTimeStr(
DateUtils.formatMS(calendar.get(Calendar.HOUR_OF_DAY) * 60 * 60
+ calendar.get(Calendar.MINUTE) * 60
+ calendar.get(Calendar.SECOND)
)
);
}
}
}
wxModeRet.setServiceData(wxModeServiceInfoList);
// 将 localTime 转为 分秒 格式
if (wxModeRet.getModeTime() != null) {
wxModeRet.setModeTimeStr(String.format("%02d:%02d", wxModeRet.getModeTime().getMinute(), wxModeRet.getModeTime().getSecond()));
wxModeRet.setModeTimeStr(DateUtils.formatMS(wxModeRet.getModeTime().getLong(ChronoField.SECOND_OF_DAY)));
}
wxModeRetList.add(wxModeRet);
}

@ -68,17 +68,10 @@ public class WxNursingLogServiceImpl implements IWxNursingLogService {
totalNursingSecond += wxNursingLog.getNursingTime().toSecondOfDay();
}
}
wxNursingStatisticsRet.setNursingTime(formatDuration(totalNursingSecond));
wxNursingStatisticsRet.setNursingTime(DateUtils.formatHMS(totalNursingSecond));
return wxNursingStatisticsRet;
}
return new WxNursingStatisticsRet(0, formatDuration(0));
}
private String formatDuration(int seconds) {
int hours = seconds / 3600;
int minutes = (seconds % 3600) / 60;
int remainingSeconds = seconds % 60;
return String.format("%02d:%02d:%02d", hours, minutes, remainingSeconds);
return new WxNursingStatisticsRet(0, DateUtils.formatHMS(0));
}
/**

@ -1,15 +1,24 @@
package com.flossom.system.controller;
import java.util.ArrayList;
import java.util.List;
import java.io.IOException;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.nacos.shaded.com.google.common.base.Function;
import com.flossom.common.core.domain.R;
import com.flossom.common.core.domain.entity.WxNursingLog;
import com.flossom.common.core.domain.entity.WxUserInstrument;
import com.flossom.common.core.domain.entity.WxUserMember;
import com.flossom.common.core.domain.entity.WxUserTag;
import com.flossom.common.core.domain.export.WxNursingLogExport;
import com.flossom.common.core.domain.export.WxUserMemberExport;
import com.flossom.common.core.domain.req.UserNursingLogReq;
import com.flossom.common.core.domain.req.WxNursingLogExportVm;
import com.flossom.common.core.domain.req.WxUserMemberExportVm;
import com.flossom.common.core.domain.req.WxUserMemberVm;
import com.flossom.common.core.domain.ret.WxUserMemberRet;
import com.flossom.common.core.exception.ServiceException;
import com.flossom.common.core.utils.poi.ExcelUtil;
import com.flossom.common.core.web.controller.BaseController;
@ -20,6 +29,7 @@ import com.flossom.common.log.enums.BusinessType;
import com.flossom.common.security.annotation.RequiresPermissions;
import com.flossom.system.service.IWxNursingLogService;
import com.flossom.system.service.IWxUserMemberService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -49,18 +59,6 @@ public class WxNursingLogController extends BaseController {
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("system:nursingLog:export")
@Log(title = "用户护理日志", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, UserNursingLogReq userNursingLogReq) {
List<WxNursingLog> list = wxNursingLogService.selectWxNursingLogList(userNursingLogReq, false);
ExcelUtil<WxNursingLog> util = new ExcelUtil<WxNursingLog>(WxNursingLog.class);
util.exportExcel(response, list, "用户护理日志数据");
}
/**
*
*/
@ -70,26 +68,6 @@ public class WxNursingLogController extends BaseController {
return success(wxNursingLogService.selectWxNursingLogById(id));
}
/**
*
*/
@RequiresPermissions("system:nursingLog:add")
@Log(title = "用户护理日志", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody WxNursingLog wxNursingLog) {
return toAjax(wxNursingLogService.insertWxNursingLog(wxNursingLog));
}
/**
*
*/
@RequiresPermissions("system:nursingLog:edit")
@Log(title = "用户护理日志", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody WxNursingLog wxNursingLog) {
return toAjax(wxNursingLogService.updateWxNursingLog(wxNursingLog));
}
/**
*
*/
@ -135,4 +113,57 @@ public class WxNursingLogController extends BaseController {
return R.ok();
}
/**
*
*/
@RequiresPermissions("system:nursingLog:export")
@PostMapping("/batchExport")
public void batchExport(HttpServletResponse response, WxNursingLogExportVm wxNursingLogExportVm) {
List<Integer> idList = wxNursingLogExportVm.getIdList();
if (idList == null || idList.size() == 0) {
throw new ServiceException("请选择导出数据");
}
List<WxNursingLog> list = wxNursingLogService.selectWxNursingLogByIdList(wxNursingLogExportVm.getIdList());
export(response, list, wxNursingLogExportVm.getExportFields());
}
/**
*
*/
@RequiresPermissions("system:nursingLog:export")
@PostMapping("/allExport")
public void allExport(HttpServletResponse response, WxNursingLogExportVm wxNursingLogExportVm) {
List<WxNursingLog> list = wxNursingLogService.selectWxNursingLogList(wxNursingLogExportVm, true);
export(response, list, wxNursingLogExportVm.getExportFields());
}
private static void export(HttpServletResponse response, List<WxNursingLog> list, List<String> exportFields) {
List<WxNursingLogExport> exportList = new ArrayList<>();
WxNursingLogExport export;
for (WxNursingLog wxNursingLog : list) {
export = new WxNursingLogExport();
BeanUtils.copyProperties(wxNursingLog, export);
exportList.add(export);
}
// 添加默认导出字段
exportFields.add("instrumentName");
exportFields.add("modeName");
exportFields.add("online");
exportFields.add("accompanyMode");
exportFields.add("createTime");
exportFields.add("nursingTime");
exportFields.add("gearPositionOne");
exportFields.add("gearPositionTwo");
exportFields.add("gearPositionThree");
exportFields.add("gearPositionFour");
exportFields.add("energyValue");
exportFields.add("waterDataOne");
exportFields.add("waterDataTwo");
exportFields.add("waterDataThree");
ExcelUtil<WxNursingLogExport> util = new ExcelUtil(WxNursingLogExport.class);
util.exportExcel(response, exportList, "护理记录数据", exportFields);
}
}

@ -61,4 +61,7 @@ public interface IWxNursingLogService {
* @return
*/
public int deleteWxNursingLogById(Long id);
List<WxNursingLog> selectWxNursingLogByIdList(List<Integer> idList);
}

@ -1,5 +1,6 @@
package com.flossom.system.service.impl;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@ -9,6 +10,7 @@ import com.flossom.common.core.domain.entity.WxInstrument;
import com.flossom.common.core.domain.entity.WxInstrumentSerial;
import com.flossom.common.core.domain.req.WxInstrumentSerialExportVm;
import com.flossom.common.core.domain.req.WxInstrumentSerialImportVm;
import com.flossom.common.core.enums.BindingStatusEnums;
import com.flossom.common.core.exception.ServiceException;
import com.flossom.common.core.mapper.WxInstrumentMapper;
import com.flossom.common.core.mapper.WxInstrumentSerialMapper;
@ -21,6 +23,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.flossom.system.service.IWxInstrumentSerialService;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
/**
@ -65,7 +68,16 @@ public class WxInstrumentSerialServiceImpl implements IWxInstrumentSerialService
String instrumentIds = wxInstrumentSerial.getInstrumentIdArray().stream().map(String::valueOf).collect(Collectors.joining(","));
wxInstrumentSerial.setQueryInstrumentIds(instrumentIds);
}
return wxInstrumentSerialMapper.selectWxInstrumentSerialList(wxInstrumentSerial);
List<WxInstrumentSerial> wxInstrumentSerialList = wxInstrumentSerialMapper.selectWxInstrumentSerialList(wxInstrumentSerial);
if (wxInstrumentSerialList != null && wxInstrumentSerialList.size() > 0) {
wxInstrumentSerialList.forEach(ws-> {
WxInstrument wxInstrument = wxInstrumentMapper.selectWxInstrumentById(ws.getInstrumentId());
if(wxInstrument != null) {
ws.setInstrumentName(wxInstrument.getName());
}
});
}
return wxInstrumentSerialList;
}
/**
@ -80,8 +92,8 @@ public class WxInstrumentSerialServiceImpl implements IWxInstrumentSerialService
wxInstrumentSerial.setCreateTime(DateUtils.getNowDate());
if (Objects.nonNull(wxInstrumentSerial.getInstrumentId())) {
WxInstrument wxInstrument = wxInstrumentMapper.selectWxInstrumentById(wxInstrumentSerial.getInstrumentId());
if (Objects.nonNull(wxInstrument)) {
wxInstrumentSerial.setInstrumentName(wxInstrument.getName());
if (!Objects.nonNull(wxInstrument)) {
throw new ServiceException("仪器不存在");
}
}
WxInstrumentSerial instrumentSerial = new WxInstrumentSerial();
@ -112,8 +124,17 @@ public class WxInstrumentSerialServiceImpl implements IWxInstrumentSerialService
* @return
*/
@Override
@Transactional
public int deleteWxInstrumentSerialByIds(Long[] ids)
{
List<WxInstrumentSerial> wxInstrumentSerialList = wxInstrumentSerialMapper.selectWxInstrumentSerialByIdList(Arrays.asList(ids));
if (wxInstrumentSerialList != null && wxInstrumentSerialList.size() > 0) {
for (WxInstrumentSerial wxInstrumentSerial : wxInstrumentSerialList) {
if (wxInstrumentSerial.getBindingStatus() == BindingStatusEnums.BINDED.getCode()) {
throw new ServiceException("删除失败,只能删除已解绑状态的数据,您选中的内容存在【已绑定状态】请重试");
}
}
}
return wxInstrumentSerialMapper.deleteWxInstrumentSerialByIds(ids);
}
@ -130,7 +151,16 @@ public class WxInstrumentSerialServiceImpl implements IWxInstrumentSerialService
}
@Override
@Transactional
public int deleteAll() {
List<WxInstrumentSerial> wxInstrumentSerialList = wxInstrumentSerialMapper.selectWxInstrumentSerialList(new WxInstrumentSerial());
if (wxInstrumentSerialList != null && wxInstrumentSerialList.size() > 0) {
for (WxInstrumentSerial wxInstrumentSerial : wxInstrumentSerialList) {
if (wxInstrumentSerial.getBindingStatus() == BindingStatusEnums.BINDED.getCode()) {
throw new ServiceException("删除失败,只能删除已解绑状态的数据,您选中的内容存在【已绑定状态】请重试");
}
}
}
return wxInstrumentSerialMapper.deleteAll();
}
@ -210,7 +240,7 @@ public class WxInstrumentSerialServiceImpl implements IWxInstrumentSerialService
// 开始插入数据
WxInstrumentSerial insertRecord = new WxInstrumentSerial();
insertRecord.setCreateTime(DateUtils.getNowDate());
insertRecord.setInstrumentName(wxInstrument.getName());
// insertRecord.setInstrumentName(wxInstrument.getName());
insertRecord.setSerial(instrumentSerialImport.getSerial());
insertRecord.setSource(instrumentSerialImport.getSource());
insertRecord.setInstrumentId(wxInstrument.getId());

@ -179,4 +179,46 @@ public class WxNursingLogServiceImpl implements IWxNursingLogService {
public int deleteWxNursingLogById(Long id) {
return wxNursingLogMapper.deleteWxNursingLogById(id);
}
@Override
public List<WxNursingLog> selectWxNursingLogByIdList(List<Integer> idList) {
List<WxNursingLog> wxNursingLogList = wxNursingLogMapper.selectWxNursingLogByIdList(idList);
if (wxNursingLogList != null && wxNursingLogList.size() > 0) {
wxNursingLogList.forEach(wxNursingLog -> {
WxUserMember wxUserMember = wxUserMemberMapper.selectWxUserMemberById(wxNursingLog.getUserId());
if (wxUserMember != null) {
// 用户信息
wxNursingLog.setHeadimg(wxUserMember.getHeadimg());
wxNursingLog.setMobile(wxUserMember.getMobile());
wxNursingLog.setNickname(wxUserMember.getNickname());
wxNursingLog.setUserMemberCreateTime(wxUserMember.getCreateTime());
// 查询标签
WxUserTag wxUserTag = new WxUserTag();
wxUserTag.setUserId(wxUserMember.getId());
wxUserTag.setType(TagTypeStatusEnum.MINI_PROGRAM.getCode());
List<WxUserTag> miniProgramTagList = wxUserTagMapper.selectWxUserTagList(wxUserTag);
if (miniProgramTagList != null && miniProgramTagList.size() > 0) {
wxNursingLog.setMiniProgramTagListStr(miniProgramTagList.stream().map(WxUserTag::getTagName).collect(Collectors.joining(",")));
}
wxUserTag.setType(TagTypeStatusEnum.ENTERPRISE_WECHAT.getCode());
List<WxUserTag> wecomTagList = wxUserTagMapper.selectWxUserTagList(wxUserTag);
if (wecomTagList != null && wecomTagList.size() > 0) {
wxNursingLog.setWecomTagListStr(wecomTagList.stream().map(WxUserTag::getTagName).collect(Collectors.joining(",")));
}
// 仪器绑定时间
WxUserInstrument query = new WxUserInstrument();
query.setUserId(wxUserMember.getId());
query.setInstrumentId(wxNursingLog.getInstrumentId());
query.setBindingStatus(BindingStatusEnums.BINDED.getCode());
List<WxUserInstrument> wxUserInstrumentList = wxUserInstrumentMapper.selectListByUserIdAndInstrumentId(query);
if (wxUserInstrumentList != null && wxUserInstrumentList.size() == 1) {
WxUserInstrument wxUserInstrument = wxUserInstrumentList.get(0);
wxNursingLog.setInstrumentBindingTime(wxUserInstrument.getUpdateTime());
}
}
});
}
return wxNursingLogList;
}
}

@ -124,7 +124,10 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService
wxInstrumentSerialLog.setUserMobile(userMember.getMobile());
wxInstrumentSerialLog.setUserHeadimg(userMember.getHeadimg());
wxInstrumentSerialLog.setInstrumentId(userInstrument.getInstrumentId());
wxInstrumentSerialLog.setInstrumentName(userInstrument.getInstrumentName());
WxInstrument wxInstrument = wxInstrumentMapper.selectWxInstrumentById(userInstrument.getInstrumentId());
if(wxInstrument != null) {
wxInstrumentSerialLog.setInstrumentName(wxInstrument.getName());
}
wxInstrumentSerialLog.setSerial(userInstrument.getSerial());
wxInstrumentSerialLog.setBindingStatus(BindingStatusEnums.UN_BOUND.getCode());
instrumentSerialLogMapper.insertWxInstrumentSerialLog(wxInstrumentSerialLog);
@ -208,7 +211,6 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService
WxInstrumentSerial instrumentSerialVo = serialList.get(0);
userInstrumentRecord.setInstrumentId(instrumentSerialVo.getInstrumentId());
userInstrumentRecord.setSerial(instrumentSerialVo.getSerial());
userInstrumentRecord.setInstrumentName(instrumentSerialVo.getInstrumentName());
// userInstrumentRecord.setSerialImage(userInstrument.getSerialImage());
// 从新绑定
this.saveLog(userInstrumentRecord,0);
@ -342,7 +344,10 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService
log.setGuarantee(userInstrumentRecord.getGuarantee());
log.setInstrumentId(userInstrumentRecord.getInstrumentId());
log.setUserId(userInstrumentRecord.getUserId());
log.setInstrumentName(userInstrumentRecord.getInstrumentName());
WxInstrument wxInstrument = wxInstrumentMapper.selectWxInstrumentById(userInstrumentRecord.getInstrumentId());
if(wxInstrument != null) {
log.setInstrumentName(wxInstrument.getName());
}
log.setSerialImage(userInstrumentRecord.getSerialImage());
log.setSerial(userInstrumentRecord.getSerial());
log.setGuaranteeEndtime(userInstrumentRecord.getGuaranteeEndtime());

@ -70,6 +70,9 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService {
@Autowired
private WxInstrumentSerialMapper wxInstrumentSerialMapper;
@Autowired
private WxInstrumentMapper wxInstrumentMapper;
/**
*
*
@ -424,7 +427,16 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService {
wxUserInstrument.setUserId(wxUserMemberRet.getId());
wxUserInstrument.setBindingStatus(BindingStatusEnums.BINDED.getCode());
wxUserInstrument.setStatus(Status.OK.getCode().longValue());
wxUserMemberRet.setInstrumentList(wxUserInstrumentMapper.selectWxUserInstrumentList(wxUserInstrument));
List<WxUserInstrument> userInstrumentList = wxUserInstrumentMapper.selectWxUserInstrumentList(wxUserInstrument);
if(userInstrumentList != null && userInstrumentList.size() > 0) {
userInstrumentList.forEach(ui -> {
WxInstrument wxInstrument = wxInstrumentMapper.selectWxInstrumentById(ui.getInstrumentId());
if(wxInstrument != null) {
ui.setInstrumentName(wxInstrument.getName());
}
});
}
wxUserMemberRet.setInstrumentList(userInstrumentList);
}
}
return wxUserMemberRetList;

@ -1,7 +1,7 @@
<template>
<div class="app-container">
<el-form ref="form" :model="form" :rules="rules" label-width="150px">
<el-form-item label="日常打卡奖励" prop="dailyClockCredit">
<el-form-item label="日常打卡奖励" prop="dailyClockCredit">
<el-input v-model="form.dailyClockCredit" placeholder="请输入日常打卡奖励" style="width: 25%;"/>
</el-form-item>
<el-form-item
@ -11,10 +11,10 @@
>
<el-switch v-model="form.isExtraClock"> </el-switch>
</el-form-item>
<el-form-item label="额外打卡奖励积分" prop="extraClockCredit" v-if="form.isExtraClock">
<el-form-item label="额外打卡奖励积分" prop="extraClockCredit" v-if="form.isExtraClock">
<el-input v-model="form.extraClockCredit" placeholder="请输入额外打卡奖励积分" style="width: 25%;"/>
</el-form-item>
<el-form-item label="额外打卡时间段" prop="timeRange" label-width="150px" v-if="form.isExtraClock">
<el-form-item label="额外打卡时间段" prop="timeRange" label-width="150px" v-if="form.isExtraClock">
<el-date-picker
v-model="form.timeRange"
type="datetimerange"
@ -23,6 +23,7 @@
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']">
>
</el-date-picker>
</el-form-item>

@ -1287,6 +1287,17 @@ import draggable from 'vuedraggable'
export default {
name: 'Instrument',
components: { Treeselect, draggable },
props: {
// (MB)
fileSize: {
type: Number,
default: 1,
},
fileType: {
type: Array,
default: () => ["bmp", "gif", "jpg", "jpeg", "png", "mp4", "avi", "rmvb"],
},
},
data() {
return {
//
@ -1512,15 +1523,6 @@ export default {
sortMode: [],
},
newModeOptionList: [],
fileType: {
type: Array,
default: () => ["bmp", "gif", "jpg", "jpeg", "png", "mp4", "avi", "rmvb"],
},
// (MB)
fileSize: {
type: Number,
default: 1,
},
}
},
created() {
@ -2455,7 +2457,7 @@ export default {
if (this.fileType) {
const fileName = file.name.split('.');
const fileExt = fileName[fileName.length - 1];
const isTypeOk = this.fileType.default().indexOf(fileExt) >= 0;
const isTypeOk = this.fileType.indexOf(fileExt) >= 0;
if (!isTypeOk) {
this.$modal.msgError(`文件格式不正确`);
return false;
@ -2466,7 +2468,7 @@ export default {
if (this.fileSize) {
const isLt = file.size / 1024 / 1024 < this.fileSize;
if (!isLt) {
this.$modal.msgError(`上传文件大小不能超过 ${this.fileSize.default} MB!`);
this.$modal.msgError(`上传文件大小不能超过 ${this.fileSize} MB!`);
return false;
}
}

@ -32,7 +32,7 @@
:style="{ width: '100%' }"
clearable
>
<el-option label="全部" value="" />
<el-option label="全部" :value="null" />
<el-option label="已绑定" value="0" />
<el-option label="未绑定" value="1" />
<el-option label="已解绑" value="2" />
@ -45,7 +45,7 @@
:style="{ width: '100%' }"
clearable
>
<el-option label="全部" value="" />
<el-option label="全部" :value="null" />
<el-option label="有效" value="1" />
<el-option label="无效" value="0" />
</el-select>
@ -86,7 +86,6 @@
>确认
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<el-col :span="1.5">
<el-button
type="primary"
@ -197,13 +196,12 @@
<!-- <el-form-item label="仪器id" prop="instrumentId">-->
<!-- <el-input v-model="form.instrumentId" placeholder="请输入仪器id" />-->
<!-- </el-form-item>-->
<el-form-item label="仪器型号" prop="instrumentId">
<el-form-item label="仪器" prop="instrumentId">
<el-select :disabled="isDisabled(form)"
v-model="form.instrumentId"
placeholder="请选择型号"
placeholder="请选择仪器"
:style="{ width: '100%' }"
clearable
>
clearable>
<el-option
v-for="item in instrumentList"
:key="item.id"
@ -213,7 +211,7 @@
</el-select>
</el-form-item>
<el-form-item label="序列号" prop="serial" >
<el-input v-model="form.serial" placeholder="请输入序列号" :disabled="isDisabled(form)" />
<el-input v-model="form.serial" placeholder="请输入序列号" :disabled="isDisabled(form)" maxlength="30" minlength="1"/>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" maxlength="50"/>
@ -549,6 +547,7 @@ export default {
this.reset();
this.open = true;
this.title = "添加仪器序列号关联";
this.form.instrumentId = '';
},
/** 修改按钮操作 */
handleUpdate(row) {
@ -564,6 +563,12 @@ export default {
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
var pattern = /^[a-zA-Z0-9\s]+$/;
if (!pattern.test(this.form.serial) || this.form.serial.trim().length === 0
|| this.form.serial.trim().length > 30) {
this.$modal.msgError("请输入正确的序列号");
return;
}
if (this.form.id != null) {
updateSerial(this.form).then(response => {
this.$modal.msgSuccess("修改成功");

@ -124,20 +124,21 @@
<span v-show="scope.row.online == 2">线</span>
</template>
</el-table-column>
<el-table-column label="陪伴模式" align="center" prop="xxx"/>
<el-table-column label="陪伴模式" align="center" prop="accompanyMode"/>
<el-table-column label="创建时间" align="center" min-width="100" prop="createTime"/>
<el-table-column label="护理时长" align="center" prop="nursingTime" width="100"/>
<el-table-column label="挡位1" align="center" prop="xxx"/>
<el-table-column label="挡位2" align="center" prop="xxx"/>
<el-table-column label="挡位3" align="center" prop="xxx"/>
<el-table-column label="挡位4" align="center" prop="xxx"/>
<el-table-column label="能量总值" align="center" prop="xxx"/>
<el-table-column label="水分数据1" align="center" prop="xxx"/>
<el-table-column label="水分数据2" align="center" prop="xxx"/>
<el-table-column label="水分数据3" align="center" prop="xxx"/>
<el-table-column label="总护理天数" min-width="100" align="center" prop="xxx"/>
<el-table-column label="本周护理天数" min-width="100" align="center" prop="xxx"/>
<el-table-column label="本月护理天数" min-width="100" align="center" prop="xxx"/>
<el-table-column label="挡位1" align="center" prop="gearPositionOne"/>
<el-table-column label="挡位2" align="center" prop="gearPositionTwo"/>
<el-table-column label="挡位3" align="center" prop="gearPositionThree"/>
<el-table-column label="挡位4" align="center" prop="gearPositionFour"/>
<el-table-column label="能量总值" align="center" prop="energyValue"/>
<el-table-column label="水分数据1" align="center" prop="waterDataOne"/>
<el-table-column label="水分数据2" align="center" prop="waterDataTwo"/>
<el-table-column label="水分数据3" align="center" prop="waterDataThree"/>
<el-table-column label="总护理天数" min-width="100" align="center" prop="nursingDays"/>
<el-table-column label="本周护理天数" min-width="100" align="center" prop="nursingDaysWeek"/>
<el-table-column label="本月护理天数" min-width="100" align="center" prop="nursingDaysMonth"/>
<el-table-column label="本年护理天数" min-width="100" align="center" prop="nursingDaysYear"/>
<el-table-column label="最新护理时间" min-width="100" align="center" prop="updateTime"/>
<el-table-column label="小程序标签" min-width="100" align="center" prop="miniProgramTagListStr"/>
<el-table-column label="外部标签" align="center" prop="wecomTagListStr"/>
@ -172,6 +173,64 @@
<el-button type="primary" @click="submitBatchOperate"> </el-button>
</div>
</el-dialog>
<!-- 导出字段选择弹窗 -->
<el-dialog title="自定义导出字段" :visible.sync="batchOperate.exportFieldsVisible" width="50%"
:before-close="cancelExportFieldsDialog">
<el-form ref="form" label-width="150px">
<el-form-item label="全部字段" prop="allFields">
<el-switch v-model="allFields" @click.native="isExportAllFields()"/>
</el-form-item>
</el-form>
<el-form :inline="true" ref="form" :model="exportFieldList" label-width="150px">
<el-form-item label="会员昵称" prop="nickname">
<el-switch v-model="exportFieldList.nickname" active-value="nickname" :inactive-value="null"/>
</el-form-item>
<el-form-item label="序号" prop="id">
<el-switch v-model="exportFieldList.id" active-value="id" :inactive-value="null"/>
</el-form-item>
<el-form-item label="用户编号 " prop="userId">
<el-switch v-model="exportFieldList.userId" active-value="userId" :inactive-value="null"/>
</el-form-item>
<el-form-item label="手机号 " prop="mobile">
<el-switch v-model="exportFieldList.mobile" active-value="mobile" :inactive-value="null"/>
</el-form-item>
<el-form-item label="总护理天数 " prop="nursingDays">
<el-switch v-model="exportFieldList.nursingDays" active-value="nursingDays" :inactive-value="null"/>
</el-form-item>
<el-form-item label="本月护理天数 " prop="nursingDaysMonth">
<el-switch v-model="exportFieldList.nursingDaysMonth" active-value="nursingDaysMonth" :inactive-value="null"/>
</el-form-item>
<el-form-item label="本周护理天数 " prop="nursingDaysWeek">
<el-switch v-model="exportFieldList.nursingDaysWeek" active-value="nursingDaysWeek" :inactive-value="null"/>
</el-form-item>
<el-form-item label="本年护理天数 " prop="nursingDaysYear">
<el-switch v-model="exportFieldList.nursingDaysYear" active-value="nursingDaysYear" :inactive-value="null"/>
</el-form-item>
<el-form-item label="最新的护理时间 " prop="updateTime">
<el-switch v-model="exportFieldList.updateTime" active-value="updateTime" :inactive-value="null"/>
</el-form-item>
<el-form-item label="外部标签 " prop="wecomTagListStr">
<el-switch v-model="exportFieldList.wecomTagListStr" active-value="wecomTagListStr" :inactive-value="null"/>
</el-form-item>
<el-form-item label="小程序标签 " prop="miniProgramTagListStr">
<el-switch v-model="exportFieldList.miniProgramTagListStr" active-value="miniProgramTagListStr"
:inactive-value="null"/>
</el-form-item>
<el-form-item label="仪器绑定时间 " prop="instrumentBindingTime">
<el-switch v-model="exportFieldList.instrumentBindingTime" active-value="instrumentBindingTime"
:inactive-value="null"/>
</el-form-item>
<el-form-item label="用户注册时间 " prop="userMemberCreateTime">
<el-switch v-model="exportFieldList.userMemberCreateTime" active-value="userMemberCreateTime"
:inactive-value="null"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelExportFieldsDialog()"> </el-button>
<el-button type="primary" @click="submitBatchOperate"> </el-button>
</div>
</el-dialog>
</div>
</template>
@ -254,12 +313,30 @@ export default {
title: null,
tagTree: [],
userIdList: [],
exportFieldsVisible: false,
},
miniProgramForm: {
tagIdArray: [],
},
exportFieldsForm: {
idList: null,
exportFields: null,
},
allFields: false,
exportFieldList: {
nickname: null,
userId: null,
mobile: null,
nursingDays: null,
nursingDaysMonth: null,
nursingDaysWeek: null,
nursingDaysYear: null,
updateTime: null,
wecomTagListStr: null,
miniProgramTagListStr: null,
instrumentBindingTime: null,
userMemberCreateTime: null,
},
//
form: {},
//
@ -379,8 +456,16 @@ export default {
this.getTagTree();
this.batchOperate.tagOperateVisible = true;
}
/* 批量操作:导出数据 */
if (this.batchOperate.operateValue == 5) {
console.log("批量导出数据");
if (this.ids.length == 0) {
this.$message({
message: '请选择要操作的数据',
type: 'warning',
})
return
}
this.batchOperate.exportFieldsVisible = true
}
} else {
/* 全量操作 */
@ -397,7 +482,7 @@ export default {
this.batchOperate.tagOperateVisible = true;
}
if (this.batchOperate.operateValue == 6) {
console.log("全量导出数据");
this.batchOperate.exportFieldsVisible = true
}
}
}
@ -454,7 +539,7 @@ export default {
this.$refs['miniProgramForm'].validate((valid) => {
if (valid) {
allAddMiniProgramTag(
this.miniProgramForm.tagIdArray,this.queryParams
this.miniProgramForm.tagIdArray, this.queryParams
).then((Response) => {
this.$modal.msgSuccess('全量添加小程序标签成功')
this.cancelMiniProgramDialog(true)
@ -468,7 +553,7 @@ export default {
this.$refs['miniProgramForm'].validate((valid) => {
if (valid) {
allDelMiniProgramTag(
this.miniProgramForm.tagIdArray,this.queryParams
this.miniProgramForm.tagIdArray, this.queryParams
).then((Response) => {
this.$modal.msgSuccess('全量删除小程序标签成功')
this.cancelMiniProgramDialog(true)
@ -477,8 +562,87 @@ export default {
}
})
}
//
if (this.batchOperate.operateValue == 5) {
let exportFields = Object.values(this.exportFieldList).filter((val) => val != null)
if (exportFields.length == 0) {
this.$modal.msgError('请选择导出字段')
return
}
this.exportFieldsForm.idList = this.ids
this.exportFieldsForm.exportFields = exportFields
this.download('/system/nursingLog/batchExport', {
...this.exportFieldsForm,
},
`护理记录数据_${new Date().getTime()}.xlsx`
)
this.cancelExportFieldsDialog();
}
if (this.batchOperate.operateValue == 6) {
let exportFields = Object.values(this.exportFieldList).filter(
(val) => val != null
)
if (exportFields.length == 0) {
this.$modal.msgError('请选择导出字段')
return
}
this.download('/system/nursingLog/allExport', {
...Object.assign({}, this.queryParams, {
exportFields: exportFields,
}),
}, `护理记录数据_${new Date().getTime()}.xlsx`
)
this.cancelExportFieldsDialog();
}
},
cancelExportFieldsDialog() {
this.allFields = false
this.batchOperate.exportFieldsVisible = false
this.exportFieldList = {
nickname: null,
userId: null,
mobile: null,
nursingDays: null,
nursingDaysMonth: null,
nursingDaysWeek: null,
nursingDaysYear: null,
updateTime: null,
wecomTagListStr: null,
miniProgramTagListStr: null,
instrumentBindingTime: null,
userMemberCreateTime: null,
}
},
isExportAllFields() {
if (this.allFields) {
this.exportFieldList.nickname = 'nickname';
this.exportFieldList.userId = 'userId';
this.exportFieldList.mobile = 'mobile';
this.exportFieldList.nursingDays = 'nursingDays';
this.exportFieldList.nursingDaysMonth = 'nursingDaysMonth';
this.exportFieldList.nursingDaysWeek = 'nursingDaysWeek';
this.exportFieldList.nursingDaysYear = 'nursingDaysYear';
this.exportFieldList.updateTime = 'updateTime';
this.exportFieldList.wecomTagListStr = 'wecomTagListStr';
this.exportFieldList.miniProgramTagListStr = 'miniProgramTagListStr';
this.exportFieldList.instrumentBindingTime = 'instrumentBindingTime';
this.exportFieldList.userMemberCreateTime = 'userMemberCreateTime';
} else {
this.exportFieldList.nickname = null;
this.exportFieldList.userId = null;
this.exportFieldList.mobile = null;
this.exportFieldList.nursingDays = null;
this.exportFieldList.nursingDaysMonth = null;
this.exportFieldList.nursingDaysWeek = null;
this.exportFieldList.nursingDaysYear = null;
this.exportFieldList.updateTime = null;
this.exportFieldList.wecomTagListStr = null;
this.exportFieldList.miniProgramTagListStr = null;
this.exportFieldList.instrumentBindingTime = null;
this.exportFieldList.userMemberCreateTime = null;
}
},
//
queryInstrument() {

@ -161,6 +161,16 @@
type="text"
icon="el-icon-delete"
@click="bingCancel(scope.row)"
v-if="scope.row.bindingStatus == 0"
v-hasPermi="['system:instrument:edit']"
>解绑</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="bingCancel(scope.row)"
v-if="scope.row.bindingStatus != 0"
disabled
v-hasPermi="['system:instrument:edit']"
>解绑</el-button>
<el-button
@ -665,6 +675,11 @@ export default {
this.$modal.msgError("序列号不能为空");
return;
}
var pattern = /^[a-zA-Z0-9\s]+$/;
if (!pattern.test(this.serialForm.serial)) {
this.$modal.msgError("请输入正确的序列号");
return;
}
changeSerial(this.serialForm).then(response => {
if (response.data.code != 200) {
this.$modal.msgError(response.data.message);

Loading…
Cancel
Save