diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index e7d380b..00d7451 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -16,7 +16,10 @@ - + + org.springframework.boot + spring-boot-starter-data-redis + org.springframework diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java new file mode 100644 index 0000000..44e80d8 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java @@ -0,0 +1,268 @@ +package com.ruoyi.common.core.redis; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.BoundSetOperations; +import org.springframework.data.redis.core.HashOperations; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.ValueOperations; +import org.springframework.stereotype.Component; + +/** + * spring redis 工具类 + * + * @author ruoyi + **/ +@SuppressWarnings(value = { "unchecked", "rawtypes" }) +@Component +public class RedisCache +{ + @Autowired + public RedisTemplate redisTemplate; + + /** + * 缓存基本的对象,Integer、String、实体类等 + * + * @param key 缓存的键值 + * @param value 缓存的值 + */ + public void setCacheObject(final String key, final T value) + { + redisTemplate.opsForValue().set(key, value); + } + + /** + * 缓存基本的对象,Integer、String、实体类等 + * + * @param key 缓存的键值 + * @param value 缓存的值 + * @param timeout 时间 + * @param timeUnit 时间颗粒度 + */ + public void setCacheObject(final String key, final T value, final Integer timeout, final TimeUnit timeUnit) + { + redisTemplate.opsForValue().set(key, value, timeout, timeUnit); + } + + /** + * 设置有效时间 + * + * @param key Redis键 + * @param timeout 超时时间 + * @return true=设置成功;false=设置失败 + */ + public boolean expire(final String key, final long timeout) + { + return expire(key, timeout, TimeUnit.SECONDS); + } + + /** + * 设置有效时间 + * + * @param key Redis键 + * @param timeout 超时时间 + * @param unit 时间单位 + * @return true=设置成功;false=设置失败 + */ + public boolean expire(final String key, final long timeout, final TimeUnit unit) + { + return redisTemplate.expire(key, timeout, unit); + } + + /** + * 获取有效时间 + * + * @param key Redis键 + * @return 有效时间 + */ + public long getExpire(final String key) + { + return redisTemplate.getExpire(key); + } + + /** + * 判断 key是否存在 + * + * @param key 键 + * @return true 存在 false不存在 + */ + public Boolean hasKey(String key) + { + return redisTemplate.hasKey(key); + } + + /** + * 获得缓存的基本对象。 + * + * @param key 缓存键值 + * @return 缓存键值对应的数据 + */ + public T getCacheObject(final String key) + { + ValueOperations operation = redisTemplate.opsForValue(); + return operation.get(key); + } + + /** + * 删除单个对象 + * + * @param key + */ + public boolean deleteObject(final String key) + { + return redisTemplate.delete(key); + } + + /** + * 删除集合对象 + * + * @param collection 多个对象 + * @return + */ + public boolean deleteObject(final Collection collection) + { + return redisTemplate.delete(collection) > 0; + } + + /** + * 缓存List数据 + * + * @param key 缓存的键值 + * @param dataList 待缓存的List数据 + * @return 缓存的对象 + */ + public long setCacheList(final String key, final List dataList) + { + Long count = redisTemplate.opsForList().rightPushAll(key, dataList); + return count == null ? 0 : count; + } + + /** + * 获得缓存的list对象 + * + * @param key 缓存的键值 + * @return 缓存键值对应的数据 + */ + public List getCacheList(final String key) + { + return redisTemplate.opsForList().range(key, 0, -1); + } + + /** + * 缓存Set + * + * @param key 缓存键值 + * @param dataSet 缓存的数据 + * @return 缓存数据的对象 + */ + public BoundSetOperations setCacheSet(final String key, final Set dataSet) + { + BoundSetOperations setOperation = redisTemplate.boundSetOps(key); + Iterator it = dataSet.iterator(); + while (it.hasNext()) + { + setOperation.add(it.next()); + } + return setOperation; + } + + /** + * 获得缓存的set + * + * @param key + * @return + */ + public Set getCacheSet(final String key) + { + return redisTemplate.opsForSet().members(key); + } + + /** + * 缓存Map + * + * @param key + * @param dataMap + */ + public void setCacheMap(final String key, final Map dataMap) + { + if (dataMap != null) { + redisTemplate.opsForHash().putAll(key, dataMap); + } + } + + /** + * 获得缓存的Map + * + * @param key + * @return + */ + public Map getCacheMap(final String key) + { + return redisTemplate.opsForHash().entries(key); + } + + /** + * 往Hash中存入数据 + * + * @param key Redis键 + * @param hKey Hash键 + * @param value 值 + */ + public void setCacheMapValue(final String key, final String hKey, final T value) + { + redisTemplate.opsForHash().put(key, hKey, value); + } + + /** + * 获取Hash中的数据 + * + * @param key Redis键 + * @param hKey Hash键 + * @return Hash中的对象 + */ + public T getCacheMapValue(final String key, final String hKey) + { + HashOperations opsForHash = redisTemplate.opsForHash(); + return opsForHash.get(key, hKey); + } + + /** + * 获取多个Hash中的数据 + * + * @param key Redis键 + * @param hKeys Hash键集合 + * @return Hash对象集合 + */ + public List getMultiCacheMapValue(final String key, final Collection hKeys) + { + return redisTemplate.opsForHash().multiGet(key, hKeys); + } + + /** + * 删除Hash中的某条数据 + * + * @param key Redis键 + * @param hKey Hash键 + * @return 是否成功 + */ + public boolean deleteCacheMapValue(final String key, final String hKey) + { + return redisTemplate.opsForHash().delete(key, hKey) > 0; + } + + /** + * 获得缓存的基本对象列表 + * + * @param pattern 字符串前缀 + * @return 对象列表 + */ + public Collection keys(final String pattern) + { + return redisTemplate.keys(pattern); + } +} diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/domain/SysNative.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/domain/SysNative.java new file mode 100644 index 0000000..6b21275 --- /dev/null +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/domain/SysNative.java @@ -0,0 +1,93 @@ +package com.yanzhu.xd.system.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 省市县对象 sys_native + * + * @author ruoyi + * @date 2024-10-26 + */ +public class SysNative extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** */ + private Long id; + + /** */ + @Excel(name = "") + private String address; + + /** */ + @Excel(name = "") + private String provinces; + + /** */ + @Excel(name = "") + private String citiy; + + /** */ + @Excel(name = "") + private String areas; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setAddress(String address) + { + this.address = address; + } + + public String getAddress() + { + return address; + } + public void setProvinces(String provinces) + { + this.provinces = provinces; + } + + public String getProvinces() + { + return provinces; + } + public void setCitiy(String citiy) + { + this.citiy = citiy; + } + + public String getCitiy() + { + return citiy; + } + public void setAreas(String areas) + { + this.areas = areas; + } + + public String getAreas() + { + return areas; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("address", getAddress()) + .append("provinces", getProvinces()) + .append("citiy", getCitiy()) + .append("areas", getAreas()) + .toString(); + } +} diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SysNativeMapper.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SysNativeMapper.java new file mode 100644 index 0000000..119b059 --- /dev/null +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/mapper/SysNativeMapper.java @@ -0,0 +1,61 @@ +package com.yanzhu.xd.system.mapper; + +import java.util.List; +import com.yanzhu.xd.system.domain.SysNative; + +/** + * 省市县Mapper接口 + * + * @author ruoyi + * @date 2024-10-26 + */ +public interface SysNativeMapper +{ + /** + * 查询省市县 + * + * @param id 省市县ID + * @return 省市县 + */ + public SysNative selectSysNativeById(Long id); + + /** + * 查询省市县列表 + * + * @param sysNative 省市县 + * @return 省市县集合 + */ + public List selectSysNativeList(SysNative sysNative); + + /** + * 新增省市县 + * + * @param sysNative 省市县 + * @return 结果 + */ + public int insertSysNative(SysNative sysNative); + + /** + * 修改省市县 + * + * @param sysNative 省市县 + * @return 结果 + */ + public int updateSysNative(SysNative sysNative); + + /** + * 删除省市县 + * + * @param id 省市县ID + * @return 结果 + */ + public int deleteSysNativeById(Long id); + + /** + * 批量删除省市县 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteSysNativeByIds(String[] ids); +} diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISysNativeService.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISysNativeService.java new file mode 100644 index 0000000..5f796ec --- /dev/null +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/ISysNativeService.java @@ -0,0 +1,61 @@ +package com.yanzhu.xd.system.service; + +import java.util.List; +import com.yanzhu.xd.system.domain.SysNative; + +/** + * 省市县Service接口 + * + * @author ruoyi + * @date 2024-10-26 + */ +public interface ISysNativeService +{ + /** + * 查询省市县 + * + * @param id 省市县ID + * @return 省市县 + */ + public SysNative selectSysNativeById(Long id); + + /** + * 查询省市县列表 + * + * @param sysNative 省市县 + * @return 省市县集合 + */ + public List selectSysNativeList(SysNative sysNative); + + /** + * 新增省市县 + * + * @param sysNative 省市县 + * @return 结果 + */ + public int insertSysNative(SysNative sysNative); + + /** + * 修改省市县 + * + * @param sysNative 省市县 + * @return 结果 + */ + public int updateSysNative(SysNative sysNative); + + /** + * 批量删除省市县 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteSysNativeByIds(String ids); + + /** + * 删除省市县信息 + * + * @param id 省市县ID + * @return 结果 + */ + public int deleteSysNativeById(Long id); +} diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SysNativeServiceImpl.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SysNativeServiceImpl.java new file mode 100644 index 0000000..e3f049d --- /dev/null +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/service/impl/SysNativeServiceImpl.java @@ -0,0 +1,94 @@ +package com.yanzhu.xd.system.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.yanzhu.xd.system.mapper.SysNativeMapper; +import com.yanzhu.xd.system.domain.SysNative; +import com.yanzhu.xd.system.service.ISysNativeService; +import com.ruoyi.common.core.text.Convert; + +/** + * 省市县Service业务层处理 + * + * @author ruoyi + * @date 2024-10-26 + */ +@Service +public class SysNativeServiceImpl implements ISysNativeService +{ + @Autowired + private SysNativeMapper sysNativeMapper; + + /** + * 查询省市县 + * + * @param id 省市县ID + * @return 省市县 + */ + @Override + public SysNative selectSysNativeById(Long id) + { + return sysNativeMapper.selectSysNativeById(id); + } + + /** + * 查询省市县列表 + * + * @param sysNative 省市县 + * @return 省市县 + */ + @Override + public List selectSysNativeList(SysNative sysNative) + { + return sysNativeMapper.selectSysNativeList(sysNative); + } + + /** + * 新增省市县 + * + * @param sysNative 省市县 + * @return 结果 + */ + @Override + public int insertSysNative(SysNative sysNative) + { + return sysNativeMapper.insertSysNative(sysNative); + } + + /** + * 修改省市县 + * + * @param sysNative 省市县 + * @return 结果 + */ + @Override + public int updateSysNative(SysNative sysNative) + { + return sysNativeMapper.updateSysNative(sysNative); + } + + /** + * 删除省市县对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteSysNativeByIds(String ids) + { + return sysNativeMapper.deleteSysNativeByIds(Convert.toStrArray(ids)); + } + + /** + * 删除省市县信息 + * + * @param id 省市县ID + * @return 结果 + */ + @Override + public int deleteSysNativeById(Long id) + { + return sysNativeMapper.deleteSysNativeById(id); + } +} diff --git a/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/task/AttendanceJgwTask.java b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/task/AttendanceJgwTask.java new file mode 100644 index 0000000..e4fc3fe --- /dev/null +++ b/ruoyi-yanzhu/src/main/java/com/yanzhu/xd/system/task/AttendanceJgwTask.java @@ -0,0 +1,25 @@ +package com.yanzhu.xd.system.task; + +import com.yanzhu.xd.system.service.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component("attendanceJgwTask") +public class AttendanceJgwTask { + + @Autowired + private ISysNativeService sysNativeService; + + @Autowired + ISurProjectAttendanceUserService attendanceUserService; + + @Autowired + ISurProjectAttendanceCfgService attendanceCfgService; + + @Autowired + ISurProjectAttendanceDataService attendanceDataService; + + @Autowired + ISurProjectAttendanceGroupService attendanceGroupService; + +} diff --git a/ruoyi-yanzhu/src/main/resources/mapper/system/SysNativeMapper.xml b/ruoyi-yanzhu/src/main/resources/mapper/system/SysNativeMapper.xml new file mode 100644 index 0000000..ca6a83c --- /dev/null +++ b/ruoyi-yanzhu/src/main/resources/mapper/system/SysNativeMapper.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + select id, address, provinces, citiy, areas from sys_native + + + + + + + + insert into sys_native + + id, + address, + provinces, + citiy, + areas, + + + #{id}, + #{address}, + #{provinces}, + #{citiy}, + #{areas}, + + + + + update sys_native + + address = #{address}, + provinces = #{provinces}, + citiy = #{citiy}, + areas = #{areas}, + + where id = #{id} + + + + delete from sys_native where id = #{id} + + + + delete from sys_native where id in + + #{id} + + + + \ No newline at end of file