Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
03c36f2d0e
|
|
@ -31,4 +31,12 @@ public enum DeviceClassEnum {
|
||||||
public List<Integer> getDeviceTypes() {
|
public List<Integer> getDeviceTypes() {
|
||||||
return deviceTypes;
|
return deviceTypes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static List<Integer> getDeviceTypesByKey(Integer key) {
|
||||||
|
return Arrays.stream(values())
|
||||||
|
.filter(e -> e.getKey().equals(key))
|
||||||
|
.map(DeviceClassEnum::getDeviceTypes)
|
||||||
|
.findFirst()
|
||||||
|
.orElse(Collections.emptyList());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@ import java.util.List;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.bonus.common.core.annotation.Excel;
|
import com.bonus.common.core.annotation.Excel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import io.swagger.models.auth.In;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import com.bonus.common.core.web.domain.BaseEntity;
|
import com.bonus.common.core.web.domain.BaseEntity;
|
||||||
|
|
@ -68,7 +67,7 @@ public class KitchenDeviceSensorRecord extends BaseEntity {
|
||||||
/** 位置 */
|
/** 位置 */
|
||||||
@Excel(name = "位置")
|
@Excel(name = "位置")
|
||||||
@ApiModelProperty(value = "位置")
|
@ApiModelProperty(value = "位置")
|
||||||
private Long subPlace;
|
private String subPlace;
|
||||||
|
|
||||||
/** 食堂id */
|
/** 食堂id */
|
||||||
@Excel(name = "食堂id")
|
@Excel(name = "食堂id")
|
||||||
|
|
@ -95,8 +94,14 @@ public class KitchenDeviceSensorRecord extends BaseEntity {
|
||||||
@ApiModelProperty(value = "测量指标最小值")
|
@ApiModelProperty(value = "测量指标最小值")
|
||||||
private BigDecimal measureMinValue;
|
private BigDecimal measureMinValue;
|
||||||
|
|
||||||
@ApiModelProperty(value = "测量结果类型")
|
@ApiModelProperty(value = "环境类测量结果类型 1 正常 2 温度过高 3 温度过低 4 湿度过高 5 湿度过低 6 烟雾浓度高")
|
||||||
private List<Integer> sensorResultTypeList;
|
private List<Integer> envSensorResultTypeList;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "设备大类 5 环境类 1 门禁类 6 监控类")
|
||||||
|
private Integer deviceCategory;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "设备细类")
|
||||||
|
private List<Integer> deviceTypes;
|
||||||
|
|
||||||
@ApiModelProperty("开始时间")
|
@ApiModelProperty("开始时间")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
|
|
||||||
|
|
@ -48,14 +48,14 @@ public class KitchenSampleCabinetRecord extends BaseEntity {
|
||||||
|
|
||||||
/** 开柜时间 */
|
/** 开柜时间 */
|
||||||
@ApiModelProperty(value = "开柜时间")
|
@ApiModelProperty(value = "开柜时间")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@Excel(name = "开柜时间", width = 30, dateFormat = "yyyy-MM-dd")
|
@Excel(name = "开柜时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date openCabinetTime;
|
private Date openCabinetTime;
|
||||||
|
|
||||||
/** 关柜时间 */
|
/** 关柜时间 */
|
||||||
@ApiModelProperty(value = "关柜时间")
|
@ApiModelProperty(value = "关柜时间")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@Excel(name = "关柜时间", width = 30, dateFormat = "yyyy-MM-dd")
|
@Excel(name = "关柜时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date closeCabinetTime;
|
private Date closeCabinetTime;
|
||||||
|
|
||||||
/** 操作类型 1开柜 2关柜 */
|
/** 操作类型 1开柜 2关柜 */
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package com.bonus.canteen.core.kitchen.domain;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.bonus.canteen.core.common.utils.FileUrlUtil;
|
||||||
import com.bonus.system.api.domain.SysUser;
|
import com.bonus.system.api.domain.SysUser;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.bonus.common.core.annotation.Excel;
|
import com.bonus.common.core.annotation.Excel;
|
||||||
|
|
@ -84,4 +85,11 @@ public class KitchenStaffInfo extends SysUser {
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
private String encryptedSearchValue;
|
private String encryptedSearchValue;
|
||||||
|
|
||||||
|
public String getHealthCertFrontImg() {
|
||||||
|
return FileUrlUtil.getFileUrl(this.healthCertFrontImg);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHealthCertBackImg() {
|
||||||
|
return FileUrlUtil.getFileUrl(this.healthCertBackImg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,10 @@
|
||||||
package com.bonus.canteen.core.kitchen.domain.constants;
|
package com.bonus.canteen.core.kitchen.domain.constants;
|
||||||
|
|
||||||
import com.bonus.canteen.core.account.constants.AccTradeTypeEnum;
|
|
||||||
|
|
||||||
public enum HealthCertStatusEnum {
|
public enum HealthCertStatusEnum {
|
||||||
NOT_APPROVE(1, "正常"),
|
NORMAL(1, "正常"),
|
||||||
APPROVE(2, "过期"),
|
EXPIRED(2, "过期"),
|
||||||
NOT_APPROVE_AGAIN(3, "缺失"),
|
NO_IMG(3, "缺失"),
|
||||||
EXPIRED(4, "临期");
|
ADVENT(4, "临期");
|
||||||
|
|
||||||
private final Integer key;
|
private final Integer key;
|
||||||
private final String desc;
|
private final String desc;
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import com.alibaba.excel.util.StringUtils;
|
||||||
import com.bonus.canteen.core.kitchen.domain.constants.DeviceSensorResultEnum;
|
import com.bonus.canteen.core.kitchen.domain.constants.DeviceSensorResultEnum;
|
||||||
import com.bonus.common.core.exception.ServiceException;
|
import com.bonus.common.core.exception.ServiceException;
|
||||||
import com.bonus.common.core.utils.DateUtils;
|
import com.bonus.common.core.utils.DateUtils;
|
||||||
|
import com.bonus.common.houqin.constant.DeviceClassEnum;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.bonus.canteen.core.kitchen.mapper.KitchenDeviceSensorRecordMapper;
|
import com.bonus.canteen.core.kitchen.mapper.KitchenDeviceSensorRecordMapper;
|
||||||
|
|
@ -45,6 +46,10 @@ public class KitchenDeviceSensorRecordServiceImpl implements IKitchenDeviceSenso
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<KitchenDeviceSensorRecord> selectKitchenDeviceSensorRecordList(KitchenDeviceSensorRecord kitchenDeviceSensorRecord) {
|
public List<KitchenDeviceSensorRecord> selectKitchenDeviceSensorRecordList(KitchenDeviceSensorRecord kitchenDeviceSensorRecord) {
|
||||||
|
if(Objects.isNull(kitchenDeviceSensorRecord.getDeviceCategory())) {
|
||||||
|
throw new ServiceException("设备分类不能为空");
|
||||||
|
}
|
||||||
|
kitchenDeviceSensorRecord.setDeviceTypes(DeviceClassEnum.getDeviceTypesByKey(kitchenDeviceSensorRecord.getDeviceCategory()));
|
||||||
List<KitchenDeviceSensorRecord> kitchenDeviceSensorRecordList = kitchenDeviceSensorRecordMapper
|
List<KitchenDeviceSensorRecord> kitchenDeviceSensorRecordList = kitchenDeviceSensorRecordMapper
|
||||||
.selectKitchenDeviceSensorRecordList(kitchenDeviceSensorRecord);
|
.selectKitchenDeviceSensorRecordList(kitchenDeviceSensorRecord);
|
||||||
if(CollUtil.isNotEmpty(kitchenDeviceSensorRecordList)) {
|
if(CollUtil.isNotEmpty(kitchenDeviceSensorRecordList)) {
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
package com.bonus.canteen.core.kitchen.service.impl;
|
package com.bonus.canteen.core.kitchen.service.impl;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import com.bonus.canteen.core.basic.domain.BasicSetting;
|
||||||
|
import com.bonus.canteen.core.basic.mapper.BasicSettingMapper;
|
||||||
import com.bonus.canteen.core.kitchen.domain.AccessAuthority;
|
import com.bonus.canteen.core.kitchen.domain.AccessAuthority;
|
||||||
import com.bonus.canteen.core.kitchen.domain.KitchenDeviceInfo;
|
import com.bonus.canteen.core.kitchen.domain.KitchenDeviceInfo;
|
||||||
import com.bonus.canteen.core.kitchen.domain.KitchenStaffDevicePrivilege;
|
import com.bonus.canteen.core.kitchen.domain.KitchenStaffDevicePrivilege;
|
||||||
|
|
@ -15,6 +19,7 @@ import com.bonus.canteen.core.user.domain.UserFace;
|
||||||
import com.bonus.canteen.core.user.service.IUserFaceService;
|
import com.bonus.canteen.core.user.service.IUserFaceService;
|
||||||
import com.bonus.common.core.exception.ServiceException;
|
import com.bonus.common.core.exception.ServiceException;
|
||||||
import com.bonus.common.core.utils.DateUtils;
|
import com.bonus.common.core.utils.DateUtils;
|
||||||
|
import com.bonus.common.core.utils.StringUtils;
|
||||||
import com.bonus.common.houqin.constant.DeviceTypeEnum;
|
import com.bonus.common.houqin.constant.DeviceTypeEnum;
|
||||||
import com.bonus.common.houqin.utils.SM4EncryptUtils;
|
import com.bonus.common.houqin.utils.SM4EncryptUtils;
|
||||||
import com.bonus.common.security.utils.SecurityUtils;
|
import com.bonus.common.security.utils.SecurityUtils;
|
||||||
|
|
@ -43,6 +48,8 @@ public class KitchenStaffInfoServiceImpl implements IKitchenStaffInfoService {
|
||||||
private KitchenStaffDevicePrivilegeMapper kitchenStaffDevicePrivilegeMapper;
|
private KitchenStaffDevicePrivilegeMapper kitchenStaffDevicePrivilegeMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private KitchenDeviceInfoMapper kitchenDeviceInfoMapper;
|
private KitchenDeviceInfoMapper kitchenDeviceInfoMapper;
|
||||||
|
@Autowired
|
||||||
|
private BasicSettingMapper basicSettingMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询厨房员工资料
|
* 查询厨房员工资料
|
||||||
|
|
@ -59,8 +66,8 @@ public class KitchenStaffInfoServiceImpl implements IKitchenStaffInfoService {
|
||||||
.selectKitchenStaffDevicePrivilegeByStaffId(staffId);
|
.selectKitchenStaffDevicePrivilegeByStaffId(staffId);
|
||||||
if(CollUtil.isNotEmpty(kitchenStaffDevicePrivilegeList)) {
|
if(CollUtil.isNotEmpty(kitchenStaffDevicePrivilegeList)) {
|
||||||
List<AccessAuthority> accessAuthorityList = Lists.newArrayList();
|
List<AccessAuthority> accessAuthorityList = Lists.newArrayList();
|
||||||
AccessAuthority accessAuthority = new AccessAuthority();
|
|
||||||
for (KitchenStaffDevicePrivilege kitchenStaffDevicePrivilege : kitchenStaffDevicePrivilegeList) {
|
for (KitchenStaffDevicePrivilege kitchenStaffDevicePrivilege : kitchenStaffDevicePrivilegeList) {
|
||||||
|
AccessAuthority accessAuthority = new AccessAuthority();
|
||||||
KitchenDeviceListVO deviceInfo = kitchenDeviceInfoMapper.selectKitchenDeviceInfoByDeviceId(kitchenStaffDevicePrivilege.getDeviceId());
|
KitchenDeviceListVO deviceInfo = kitchenDeviceInfoMapper.selectKitchenDeviceInfoByDeviceId(kitchenStaffDevicePrivilege.getDeviceId());
|
||||||
if(Objects.nonNull(deviceInfo)) {
|
if(Objects.nonNull(deviceInfo)) {
|
||||||
accessAuthority.setDeviceName(deviceInfo.getDeviceName());
|
accessAuthority.setDeviceName(deviceInfo.getDeviceName());
|
||||||
|
|
@ -89,9 +96,26 @@ public class KitchenStaffInfoServiceImpl implements IKitchenStaffInfoService {
|
||||||
kitchenStaffInfo.setEncryptedSearchValue(encryptedSearchValue);
|
kitchenStaffInfo.setEncryptedSearchValue(encryptedSearchValue);
|
||||||
List<KitchenStaffInfo> kitchenStaffInfoList = kitchenStaffInfoMapper.selectKitchenStaffInfoList(kitchenStaffInfo);
|
List<KitchenStaffInfo> kitchenStaffInfoList = kitchenStaffInfoMapper.selectKitchenStaffInfoList(kitchenStaffInfo);
|
||||||
if(CollUtil.isNotEmpty(kitchenStaffInfoList)) {
|
if(CollUtil.isNotEmpty(kitchenStaffInfoList)) {
|
||||||
|
BasicSetting basicSetting = new BasicSetting();
|
||||||
|
basicSetting.setItemName("staff_health_cert_left_day_reminder");
|
||||||
|
List<BasicSetting> basicSettingList = basicSettingMapper.selectBasicSettingList(basicSetting);
|
||||||
|
Long reminderDays = null;
|
||||||
|
if(CollUtil.isEmpty(basicSettingList)) {
|
||||||
|
reminderDays = 30L;
|
||||||
|
}else {
|
||||||
|
reminderDays = basicSettingList.get(0).getItemValue() == null ? 30L : Long.parseLong(basicSettingList.get(0).getItemValue());
|
||||||
|
}
|
||||||
for (KitchenStaffInfo info : kitchenStaffInfoList) {
|
for (KitchenStaffInfo info : kitchenStaffInfoList) {
|
||||||
info.setPhonenumber(SM4EncryptUtils.sm4Decrypt(info.getPhonenumber()));
|
info.setPhonenumber(SM4EncryptUtils.sm4Decrypt(info.getPhonenumber()));
|
||||||
info.setHealthCertStatusName(HealthCertStatusEnum.getDescByKey(info.getHealthCertStatus()));
|
if(StringUtils.isBlank(info.getHealthCertFrontImg())) {
|
||||||
|
info.setHealthCertStatusName(HealthCertStatusEnum.NO_IMG.getDesc());
|
||||||
|
}else if(Objects.nonNull(info.getHealthCertExpire()) && info.getHealthCertExpire().isBefore(LocalDate.now())){
|
||||||
|
info.setHealthCertStatusName(HealthCertStatusEnum.EXPIRED.getDesc());
|
||||||
|
}else if(Objects.nonNull(info.getHealthCertExpire()) && info.getHealthCertExpire().isBefore(LocalDate.now().plusDays(reminderDays))){
|
||||||
|
info.setHealthCertStatusName(HealthCertStatusEnum.ADVENT.getDesc());
|
||||||
|
}else if(Objects.nonNull(info.getHealthCertExpire()) && info.getHealthCertExpire().isAfter(LocalDate.now().plusDays(reminderDays))){
|
||||||
|
info.setHealthCertStatusName(HealthCertStatusEnum.NORMAL.getDesc());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return kitchenStaffInfoList;
|
return kitchenStaffInfoList;
|
||||||
|
|
@ -110,6 +134,14 @@ public class KitchenStaffInfoServiceImpl implements IKitchenStaffInfoService {
|
||||||
kitchenStaffInfo.setCreateBy(SecurityUtils.getUsername());
|
kitchenStaffInfo.setCreateBy(SecurityUtils.getUsername());
|
||||||
kitchenStaffInfo.setStaffId(null);
|
kitchenStaffInfo.setStaffId(null);
|
||||||
try {
|
try {
|
||||||
|
if(StringUtils.isNotBlank(kitchenStaffInfo.getHealthCertFrontImg())
|
||||||
|
&& Objects.isNull(kitchenStaffInfo.getHealthCertExpire())) {
|
||||||
|
throw new ServiceException("健康证有效期不能为空");
|
||||||
|
}
|
||||||
|
if(StringUtils.isBlank(kitchenStaffInfo.getHealthCertFrontImg())
|
||||||
|
&& Objects.nonNull(kitchenStaffInfo.getHealthCertExpire())) {
|
||||||
|
throw new ServiceException("健康证不能为空");
|
||||||
|
}
|
||||||
checkUser(kitchenStaffInfo);
|
checkUser(kitchenStaffInfo);
|
||||||
int result = kitchenStaffInfoMapper.insertKitchenStaffInfo(kitchenStaffInfo);
|
int result = kitchenStaffInfoMapper.insertKitchenStaffInfo(kitchenStaffInfo);
|
||||||
addPrivileges(kitchenStaffInfo);
|
addPrivileges(kitchenStaffInfo);
|
||||||
|
|
|
||||||
|
|
@ -44,15 +44,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="deviceId != null "> and kdsr.device_id = #{deviceId}</if>
|
<if test="deviceId != null "> and kdsr.device_id = #{deviceId}</if>
|
||||||
<if test="deviceType != null "> and kdsr.device_type = #{deviceType}</if>
|
<if test="deviceType != null "> and kdsr.device_type = #{deviceType}</if>
|
||||||
<if test="measureCode != null and measureCode != ''"> and kdsr.measure_code = #{measureCode}</if>
|
<if test="measureCode != null and measureCode != ''"> and kdsr.measure_code = #{measureCode}</if>
|
||||||
<if test="measureData != null and measureData != ''"> and measure_data = #{measureData}</if>
|
<if test="measureData != null and measureData != ''"> and measure_data like CONCAT('%',#{measureData},'%')</if>
|
||||||
<if test="gatewayDeviceId != null "> and gateway_device_id = #{gatewayDeviceId}</if>
|
<if test="gatewayDeviceId != null "> and gateway_device_id = #{gatewayDeviceId}</if>
|
||||||
<if test="deviceTime != null "> and device_time = #{deviceTime}</if>
|
<if test="deviceTime != null "> and device_time = #{deviceTime}</if>
|
||||||
<if test="subPlace != null "> and kdsr.sub_place = #{subPlace}</if>
|
<if test="subPlace != null "> and kdsr.sub_place = #{subPlace}</if>
|
||||||
<if test="canteenId != null "> and kdsr.canteen_id = #{canteenId}</if>
|
<if test="canteenId != null "> and kdsr.canteen_id = #{canteenId}</if>
|
||||||
<if test="areaId != null "> and kdsr.area_id = #{areaId}</if>
|
<if test="areaId != null "> and kdsr.area_id = #{areaId}</if>
|
||||||
<if test="sensorResultTypeList != null and sensorResultTypeList.size() > 0">
|
<if test="deviceTypes != null and deviceTypes.size() > 0">
|
||||||
|
and kdsr.device_type in
|
||||||
|
<foreach collection="deviceTypes" item="deviceType" separator="," open="(" close=")">
|
||||||
|
#{deviceType}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
<if test="envSensorResultTypeList != null and envSensorResultTypeList.size() > 0">
|
||||||
and (
|
and (
|
||||||
<foreach item="type" collection="sensorResultTypeList" separator=" or ">
|
<foreach item="type" collection="envSensorResultTypeList" separator=" or ">
|
||||||
<choose>
|
<choose>
|
||||||
<when test="type == 1">
|
<when test="type == 1">
|
||||||
((kdsm.measure_code = 'temperature'
|
((kdsm.measure_code = 'temperature'
|
||||||
|
|
|
||||||
|
|
@ -20,14 +20,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<result property="postName" column="post_name" />
|
<result property="postName" column="post_name" />
|
||||||
<result property="canteenName" column="canteen_name" />
|
<result property="canteenName" column="canteen_name" />
|
||||||
<result property="phonenumber" column="phonenumber" />
|
<result property="phonenumber" column="phonenumber" />
|
||||||
<result property="staffNo" column="staffNo" />
|
<result property="staffNo" column="staff_no" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectKitchenStaffMorningCheckVo">
|
<sql id="selectKitchenStaffMorningCheckVo">
|
||||||
select check_Id, ksmc.staff_id, device_id, temperature_value, temperature_status,
|
select check_Id, ksmc.staff_id, device_id, temperature_value, temperature_status,
|
||||||
check_status, record_time, check_video_url, ksmc.create_by, ksmc.create_time,
|
check_status, record_time, check_video_url, ksmc.create_by, ksmc.create_time,
|
||||||
ksmc.update_by, ksmc.update_time, su.nick_name, sp.post_name, bc.canteen_name,
|
ksmc.update_by, ksmc.update_time, su.nick_name, sp.post_name, bc.canteen_name,
|
||||||
su.phonenumber, su.user_id as staffNo
|
su.phonenumber, ksi.staff_no
|
||||||
from kitchen_staff_morning_check ksmc
|
from kitchen_staff_morning_check ksmc
|
||||||
left join kitchen_staff_info ksi on ksmc.staff_id = ksi.staff_id
|
left join kitchen_staff_info ksi on ksmc.staff_id = ksi.staff_id
|
||||||
left join sys_user su on ksi.user_id = su.user_id
|
left join sys_user su on ksi.user_id = su.user_id
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue