diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/IntegralClock.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/IntegralClock.java new file mode 100644 index 0000000..22776b6 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/IntegralClock.java @@ -0,0 +1,143 @@ +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; +import com.flossom.common.core.annotation.Excel; +import com.flossom.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 打卡奖励积分对象 integral_clock + * + * @author flossom + * @date 2024-01-25 + */ +public class IntegralClock extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 日常打卡获得积分 */ + @Excel(name = "日常打卡获得积分") + private Long dailyClockCredit; + + /** 是否开启额外打卡奖励(0关闭、1打开) */ + @Excel(name = "是否开启额外打卡奖励", readConverterExp = "0=关闭、1打开") + private Long isExtraClock; + + /** 额外打卡奖励积分 */ + @Excel(name = "额外打卡奖励积分") + private Long extraClockCredit; + + /** 额外打卡时间开始 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + @Excel(name = "额外打卡时间开始", width = 30, dateFormat = "yyyy-MM-dd") + private Date startTime; + + /** 额外打卡时间结束 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + @Excel(name = "额外打卡时间结束", width = 30, dateFormat = "yyyy-MM-dd") + private Date endTime; + + /** 状态(0正常 1停用) */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private Long status; + + private List timeRange = new ArrayList(); + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setDailyClockCredit(Long dailyClockCredit) + { + this.dailyClockCredit = dailyClockCredit; + } + + public Long getDailyClockCredit() + { + return dailyClockCredit; + } + public void setIsExtraClock(Long isExtraClock) + { + this.isExtraClock = isExtraClock; + } + + public Long getIsExtraClock() + { + return isExtraClock; + } + public void setExtraClockCredit(Long extraClockCredit) + { + this.extraClockCredit = extraClockCredit; + } + + public Long getExtraClockCredit() + { + return extraClockCredit; + } + public void setStartTime(Date startTime) + { + this.startTime = startTime; + } + + public Date getStartTime() + { + return startTime; + } + public void setEndTime(Date endTime) + { + this.endTime = endTime; + } + + public Date getEndTime() + { + return endTime; + } + public void setStatus(Long status) + { + this.status = status; + } + + public Long getStatus() + { + return status; + } + + public List getTimeRange() { + return timeRange; + } + + public void setTimeRange(List timeRange) { + this.timeRange = timeRange; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("dailyClockCredit", getDailyClockCredit()) + .append("isExtraClock", getIsExtraClock()) + .append("extraClockCredit", getExtraClockCredit()) + .append("startTime", getStartTime()) + .append("endTime", getEndTime()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/enums/ClockStatus.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/enums/ClockStatus.java new file mode 100644 index 0000000..b101e95 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/enums/ClockStatus.java @@ -0,0 +1,30 @@ +package com.flossom.common.core.enums; + +/** + * 用户状态 + * + * @author flossom + */ +public enum ClockStatus +{ + OK(1, "正常"), DISABLE(0, "关闭"); + + private final Integer code; + private final String info; + + ClockStatus(Integer code, String info) + { + this.code = code; + this.info = info; + } + + public Integer getCode() + { + return code; + } + + public String getInfo() + { + return info; + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/IntegralClockMapper.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/IntegralClockMapper.java new file mode 100644 index 0000000..56c6ee2 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/IntegralClockMapper.java @@ -0,0 +1,62 @@ +package com.flossom.common.core.mapper; + +import com.flossom.common.core.domain.entity.IntegralClock; + +import java.util.List; + +/** + * 打卡奖励积分Mapper接口 + * + * @author flossom + * @date 2024-01-25 + */ +public interface IntegralClockMapper +{ + /** + * 查询打卡奖励积分 + * + * @param id 打卡奖励积分主键 + * @return 打卡奖励积分 + */ + public IntegralClock selectIntegralClockById(Long id); + + /** + * 查询打卡奖励积分列表 + * + * @param integralClock 打卡奖励积分 + * @return 打卡奖励积分集合 + */ + public List selectIntegralClockList(IntegralClock integralClock); + + /** + * 新增打卡奖励积分 + * + * @param integralClock 打卡奖励积分 + * @return 结果 + */ + public int insertIntegralClock(IntegralClock integralClock); + + /** + * 修改打卡奖励积分 + * + * @param integralClock 打卡奖励积分 + * @return 结果 + */ + public int updateIntegralClock(IntegralClock integralClock); + + /** + * 删除打卡奖励积分 + * + * @param id 打卡奖励积分主键 + * @return 结果 + */ + public int deleteIntegralClockById(Long id); + + /** + * 批量删除打卡奖励积分 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteIntegralClockByIds(Long[] ids); +} diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/IntegralClockMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/IntegralClockMapper.xml new file mode 100644 index 0000000..42ab3bc --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/IntegralClockMapper.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + select id, daily_clock_credit, is_extra_clock, extra_clock_credit, start_time, end_time, status, create_by, create_time, update_by, update_time, remark from integral_clock + + + + + + + + insert into integral_clock + + daily_clock_credit, + is_extra_clock, + extra_clock_credit, + start_time, + end_time, + status, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{dailyClockCredit}, + #{isExtraClock}, + #{extraClockCredit}, + #{startTime}, + #{endTime}, + #{status}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update integral_clock + + daily_clock_credit = #{dailyClockCredit}, + is_extra_clock = #{isExtraClock}, + extra_clock_credit = #{extraClockCredit}, + start_time = #{startTime}, + end_time = #{endTime}, + status = #{status}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where id = #{id} + + + + delete from integral_clock where id = #{id} + + + + delete from integral_clock where id in + + #{id} + + + diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/IntegralClockController.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/IntegralClockController.java new file mode 100644 index 0000000..fc3d907 --- /dev/null +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/IntegralClockController.java @@ -0,0 +1,117 @@ +package com.flossom.system.controller; + +import java.text.SimpleDateFormat; +import java.util.List; +import java.io.IOException; +import java.util.Objects; +import javax.servlet.http.HttpServletResponse; + +import com.flossom.common.core.domain.entity.IntegralClock; +import com.flossom.common.core.utils.poi.ExcelUtil; +import com.flossom.common.core.web.controller.BaseController; +import com.flossom.common.core.web.domain.AjaxResult; +import com.flossom.common.core.web.page.TableDataInfo; +import com.flossom.common.log.annotation.Log; +import com.flossom.common.log.enums.BusinessType; +import com.flossom.common.security.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.flossom.system.service.IIntegralClockService; + +/** + * 打卡奖励积分Controller + * + * @author flossom + * @date 2024-01-25 + */ +@RestController +@RequestMapping("/clockIntegral") +public class IntegralClockController extends BaseController +{ + @Autowired + private IIntegralClockService integralClockService; + + /** + * 查询打卡奖励积分列表 + */ + @RequiresPermissions("system:clockIntegral:list") + @GetMapping("/list") + public TableDataInfo list(IntegralClock integralClock) + { + startPage(); + List list = integralClockService.selectIntegralClockList(integralClock); + SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + for (IntegralClock clock:list) { + if (Objects.nonNull(clock.getStartTime())) { + clock.getTimeRange().add(sd.format(clock.getStartTime())); + } + if (Objects.nonNull(clock.getEndTime())) { + clock.getTimeRange().add(sd.format(clock.getEndTime())); + } + } + return getDataTable(list); + } + + /** + * 导出打卡奖励积分列表 + */ + @RequiresPermissions("system:clockIntegral:export") + @Log(title = "打卡奖励积分", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, IntegralClock integralClock) + { + List list = integralClockService.selectIntegralClockList(integralClock); + ExcelUtil util = new ExcelUtil(IntegralClock.class); + util.exportExcel(response, list, "打卡奖励积分数据"); + } + + /** + * 获取打卡奖励积分详细信息 + */ + @RequiresPermissions("system:clockIntegral:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(integralClockService.selectIntegralClockById(id)); + } + + /** + * 新增打卡奖励积分 + */ + @RequiresPermissions("system:clockIntegral:add") + @Log(title = "打卡奖励积分", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody IntegralClock integralClock) + { + return toAjax(integralClockService.insertIntegralClock(integralClock)); + } + + /** + * 修改打卡奖励积分 + */ + @RequiresPermissions("system:clockIntegral:edit") + @Log(title = "打卡奖励积分", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody IntegralClock integralClock) + { + return toAjax(integralClockService.updateIntegralClock(integralClock)); + } + + /** + * 删除打卡奖励积分 + */ + @RequiresPermissions("system:clockIntegral:remove") + @Log(title = "打卡奖励积分", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(integralClockService.deleteIntegralClockByIds(ids)); + } +} diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IIntegralClockService.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IIntegralClockService.java new file mode 100644 index 0000000..025208a --- /dev/null +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IIntegralClockService.java @@ -0,0 +1,62 @@ +package com.flossom.system.service; + +import com.flossom.common.core.domain.entity.IntegralClock; + +import java.util.List; + +/** + * 打卡奖励积分Service接口 + * + * @author flossom + * @date 2024-01-25 + */ +public interface IIntegralClockService +{ + /** + * 查询打卡奖励积分 + * + * @param id 打卡奖励积分主键 + * @return 打卡奖励积分 + */ + public IntegralClock selectIntegralClockById(Long id); + + /** + * 查询打卡奖励积分列表 + * + * @param integralClock 打卡奖励积分 + * @return 打卡奖励积分集合 + */ + public List selectIntegralClockList(IntegralClock integralClock); + + /** + * 新增打卡奖励积分 + * + * @param integralClock 打卡奖励积分 + * @return 结果 + */ + public int insertIntegralClock(IntegralClock integralClock); + + /** + * 修改打卡奖励积分 + * + * @param integralClock 打卡奖励积分 + * @return 结果 + */ + public int updateIntegralClock(IntegralClock integralClock); + + /** + * 批量删除打卡奖励积分 + * + * @param ids 需要删除的打卡奖励积分主键集合 + * @return 结果 + */ + public int deleteIntegralClockByIds(Long[] ids); + + /** + * 删除打卡奖励积分信息 + * + * @param id 打卡奖励积分主键 + * @return 结果 + */ + public int deleteIntegralClockById(Long id); +} diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/IntegralClockServiceImpl.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/IntegralClockServiceImpl.java new file mode 100644 index 0000000..b0242f6 --- /dev/null +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/IntegralClockServiceImpl.java @@ -0,0 +1,102 @@ +package com.flossom.system.service.impl; + +import java.util.List; + +import com.flossom.common.core.domain.entity.IntegralClock; +import com.flossom.common.core.enums.ClockStatus; +import com.flossom.common.core.mapper.IntegralClockMapper; +import com.flossom.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.flossom.system.service.IIntegralClockService; + +/** + * 打卡奖励积分Service业务层处理 + * + * @author flossom + * @date 2024-01-25 + */ +@Service +public class IntegralClockServiceImpl implements IIntegralClockService +{ + @Autowired + private IntegralClockMapper integralClockMapper; + + /** + * 查询打卡奖励积分 + * + * @param id 打卡奖励积分主键 + * @return 打卡奖励积分 + */ + @Override + public IntegralClock selectIntegralClockById(Long id) + { + return integralClockMapper.selectIntegralClockById(id); + } + + /** + * 查询打卡奖励积分列表 + * + * @param integralClock 打卡奖励积分 + * @return 打卡奖励积分 + */ + @Override + public List selectIntegralClockList(IntegralClock integralClock) + { + return integralClockMapper.selectIntegralClockList(integralClock); + } + + /** + * 新增打卡奖励积分 + * + * @param integralClock 打卡奖励积分 + * @return 结果 + */ + @Override + public int insertIntegralClock(IntegralClock integralClock) + { + integralClock.setCreateTime(DateUtils.getNowDate()); + return integralClockMapper.insertIntegralClock(integralClock); + } + + /** + * 修改打卡奖励积分 + * + * @param integralClock 打卡奖励积分 + * @return 结果 + */ + @Override + public int updateIntegralClock(IntegralClock integralClock) + { + integralClock.setUpdateTime(DateUtils.getNowDate()); +// if (ClockStatus.DISABLE.getCode() == integralClock.getIsExtraClock().intValue()) { +// // 当操作关闭的时候,把其他数据关联数据清空 +// integralClock.setExtraClockCredit(); +// } + return integralClockMapper.updateIntegralClock(integralClock); + } + + /** + * 批量删除打卡奖励积分 + * + * @param ids 需要删除的打卡奖励积分主键 + * @return 结果 + */ + @Override + public int deleteIntegralClockByIds(Long[] ids) + { + return integralClockMapper.deleteIntegralClockByIds(ids); + } + + /** + * 删除打卡奖励积分信息 + * + * @param id 打卡奖励积分主键 + * @return 结果 + */ + @Override + public int deleteIntegralClockById(Long id) + { + return integralClockMapper.deleteIntegralClockById(id); + } +} diff --git a/flossom-ui/src/api/system/clockIntegral.js b/flossom-ui/src/api/system/clockIntegral.js new file mode 100644 index 0000000..b91426d --- /dev/null +++ b/flossom-ui/src/api/system/clockIntegral.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询打卡奖励积分列表 +export function listClock(query) { + return request({ + url: '/system/clockIntegral/list', + method: 'get', + params: query + }) +} + +// 查询打卡奖励积分详细 +export function getClock(id) { + return request({ + url: '/system/clockIntegral/' + id, + method: 'get' + }) +} + +// 新增打卡奖励积分 +export function addClock(data) { + return request({ + url: '/system/clockIntegral', + method: 'post', + data: data + }) +} + +// 修改打卡奖励积分 +export function updateClock(data) { + return request({ + url: '/system/clockIntegral', + method: 'put', + data: data + }) +} + +// 删除打卡奖励积分 +export function delClock(id) { + return request({ + url: '/system/clockIntegral/' + id, + method: 'delete' + }) +} diff --git a/flossom-ui/src/views/system/clockIntegral/index.vue b/flossom-ui/src/views/system/clockIntegral/index.vue new file mode 100644 index 0000000..3581e8b --- /dev/null +++ b/flossom-ui/src/views/system/clockIntegral/index.vue @@ -0,0 +1,218 @@ + + + diff --git a/flossom-ui/src/views/system/instrument/index.vue b/flossom-ui/src/views/system/instrument/index.vue index 22a7a4e..fa1578a 100644 --- a/flossom-ui/src/views/system/instrument/index.vue +++ b/flossom-ui/src/views/system/instrument/index.vue @@ -1,160 +1,164 @@