Browse Source

考勤特殊日

shudonghui 1 year ago
parent
commit
242b659fa0

+ 7 - 2
sop-business/src/main/java/com/qmth/sop/business/mapper/SysDingDateMapper.java

@@ -11,13 +11,18 @@ import java.util.Map;
  * 考勤特殊日期 Mapper 接口.
  * 
  * @author: shudonghui
- * @date: 2023-08-10 13:52:06
+ * @date: 2023-08-15 10:03:13
  * @version: 1.0
  * @email: shudonghui@qmth.com.cn
  * @Company: www.qmth.com.cn
  */
 public interface SysDingDateMapper extends BaseMapper<SysDingDate> {
 
-
+	/**
+	 * 查询列表
+	 * @param iPage
+	 * @return
+	 */
+	public IPage<SysDingDate> query(IPage<Map> iPage, @Param("query") String query);
 
 }

+ 24 - 1
sop-business/src/main/java/com/qmth/sop/business/service/SysDingDateService.java

@@ -1,23 +1,46 @@
 package com.qmth.sop.business.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.sop.business.entity.SysDingDate;
 import com.qmth.sop.common.enums.DingDateTypeEnum;
 
 import java.time.LocalDate;
+import java.util.Map;
 
 /**
  * 考勤特殊日期 服务类
  *
  * @author: shudonghui
- * @date: 2023-08-10 13:52:06
+ * @date: 2023-08-15 10:03:13
  * @version: 1.0
  * @email: shudonghui@qmth.com.cn
  * @Company: www.qmth.com.cn
  */
 public interface SysDingDateService extends IService<SysDingDate>{
 
+    /**
+    * 查询列表
+    *
+    * @param iPage
+    * @return
+    */
+    IPage<SysDingDate> query(IPage<Map> iPage,String query);
+
+    /**
+    * 新增修改考勤特殊日期
+    *
+    * @param sysDingDate
+    */
+    Boolean saveSysDingDate(SysDingDate sysDingDate);
 
+
+    /**
+    * 删除考勤特殊日期
+    *
+    * @param id
+    */
+    Boolean delete(Long id);
     /**
      * 是否为工作日,周末,法定节假日
      */

+ 69 - 1
sop-business/src/main/java/com/qmth/sop/business/service/impl/SysDingDateServiceImpl.java

@@ -1,21 +1,35 @@
 package com.qmth.sop.business.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.boot.api.exception.ApiException;
 import com.qmth.sop.business.entity.SysDingDate;
+import com.qmth.sop.business.entity.SysUser;
 import com.qmth.sop.business.mapper.SysDingDateMapper;
 import com.qmth.sop.business.service.SysDingDateService;
+import com.qmth.sop.common.contant.SystemConstant;
 import com.qmth.sop.common.enums.DingDateTypeEnum;
+import com.qmth.sop.common.enums.ExceptionResultEnum;
+import com.qmth.sop.common.enums.FieldUniqueEnum;
+import com.qmth.sop.common.util.ResultUtil;
+import com.qmth.sop.common.util.ServletUtil;
+import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.time.DayOfWeek;
 import java.time.LocalDate;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
 
 /**
  * 考勤特殊日期 服务实现.
  *
  * @author: shudonghui
- * @date: 2023-08-10 13:52:06
+ * @date: 2023-08-15 10:03:13
  * @version: 1.0
  * @email: shudonghui@qmth.com.cn
  * @Company: www.qmth.com.cn
@@ -24,6 +38,59 @@ import java.time.LocalDate;
 public class SysDingDateServiceImpl extends ServiceImpl<SysDingDateMapper, SysDingDate> implements SysDingDateService {
 
 
+    /**
+     * 查询列表
+     *
+     * @param iPage
+     * @return
+     */
+    @Override
+    public IPage<SysDingDate> query(IPage<Map> iPage, String query) {
+        return this.baseMapper.query(iPage, query);
+    }
+
+    /**
+     * 新增修改考勤特殊日期
+     *
+     * @param sysDingDate
+     */
+    @Override
+    @Transactional
+    public Boolean saveSysDingDate(SysDingDate sysDingDate) {
+        try {
+            SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+            if (Objects.isNull(sysDingDate.getId())) {// 新增
+                //sysDingDate.insertInfo(sysUser.getId());
+            } else { // 修改
+                //sysDingDate.updateInfo(sysUser.getId());
+            }
+            return saveOrUpdate(sysDingDate);
+        } catch (Exception e) {
+            if (e instanceof DuplicateKeyException) {
+                String errorColumn = e.getCause().toString();
+                String columnStr = errorColumn.substring(errorColumn.lastIndexOf("key") + 3, errorColumn.length()).replaceAll("'", "");
+                throw ExceptionResultEnum.SQL_ERROR.exception("[" + FieldUniqueEnum.convertToTitle(columnStr) + "]数据不允许重复插入");
+            } else if (e instanceof ApiException) {
+                ResultUtil.error((ApiException) e, e.getMessage());
+            } else {
+                ResultUtil.error(e.getMessage());
+            }
+        }
+        return null;
+
+    }
+
+    /**
+     * 删除考勤特殊日期
+     *
+     * @param id
+     */
+    @Override
+    @Transactional
+    public Boolean delete(Long id) {
+        return this.removeById(id);
+    }
+
     @Override
     public DingDateTypeEnum getDingDateType(LocalDate date) {
         SysDingDate sysDingDate = this.getOne(new QueryWrapper<SysDingDate>().lambda().eq(SysDingDate::getYear, date.getYear()).eq(SysDingDate::getMonth, date.getMonthValue()).eq(SysDingDate::getDay, date.getDayOfMonth()));
@@ -35,4 +102,5 @@ public class SysDingDateServiceImpl extends ServiceImpl<SysDingDateMapper, SysDi
             return DingDateTypeEnum.WEEKEND;
         }
     }
+
 }

+ 4 - 0
sop-business/src/main/resources/mapper/SysDingDateMapper.xml

@@ -2,5 +2,9 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.qmth.sop.business.mapper.SysDingDateMapper">
 
+    <select id="query" resultType="com.qmth.sop.business.entity.SysDingDate">
+        select * from sys_ding_date a
 
+        order by a.create_time desc
+    </select>
 </mapper>

+ 83 - 0
sop-server/src/main/java/com/qmth/sop/server/api/SysDingDateController.java

@@ -0,0 +1,83 @@
+package com.qmth.sop.server.api;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.boot.api.annotation.Aac;
+import com.qmth.boot.api.annotation.BOOL;
+import com.qmth.sop.business.bean.result.EditResult;
+import com.qmth.sop.business.entity.SysDingDate;
+import com.qmth.sop.business.service.SysDingDateService;
+import com.qmth.sop.common.contant.SystemConstant;
+import com.qmth.sop.common.util.Result;
+import com.qmth.sop.common.util.ResultUtil;
+import io.swagger.annotations.*;
+import org.springframework.util.CollectionUtils; 
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 考勤特殊日期 控制器
+ * 
+ * @author: shudonghui
+ * @date: 2023-08-15 10:03:13
+ * @version: 1.0
+ * @email: shudonghui@qmth.com.cn
+ * @Company: www.qmth.com.cn
+ */
+@Api(tags = "考勤特殊日期 Controller")
+@RestController
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX+"/sys/ding/date")
+@Validated
+public class SysDingDateController {
+
+
+    @Resource
+    SysDingDateService sysDingDateService;
+
+    @Aac(auth= BOOL.FALSE)
+    @ApiOperation(value = "考勤特殊日期查询接口")
+    @RequestMapping(value = "/query", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "考勤特殊日期查询结果", response = SysDingDate.class)})
+    public Result query(
+                @ApiParam(value = "模糊查询条件", required = false) @RequestParam(required = false) String query,
+                @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
+                @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
+        IPage<SysDingDate> resultIPage = sysDingDateService.query(new Page<>(pageNumber, pageSize),query);
+
+        return ResultUtil.ok(resultIPage);
+    }
+
+    @Aac(auth= BOOL.FALSE)
+    @ApiOperation(value = "考勤特殊日期新增修改接口")
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = Object.class)})
+    public Result save(@ApiParam(value = "考勤特殊日期信息", required = true) @RequestBody(required = true) SysDingDate sysDingDate) {
+        return ResultUtil.ok(sysDingDateService.saveSysDingDate(sysDingDate));
+    }
+
+
+    @Aac(auth= BOOL.FALSE)
+    @ApiOperation(value = "考勤特殊日期删除接口")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = Object.class)})
+    public Result delete(@ApiParam(value = "考勤特殊日期id", required = true) @RequestParam(required = true) long id) {
+        return ResultUtil.ok(sysDingDateService.delete(id));
+    }
+
+
+    @Aac(auth= BOOL.FALSE)
+    @ApiOperation(value = "考勤特殊日期获取单个接口")
+    @RequestMapping(value = "/get", method = RequestMethod.GET)
+    @ApiResponses({@ApiResponse(code = 200, message = "考勤特殊日期信息", response = SysDingDate.class)})
+    public Result get(@ApiParam(value = "考勤特殊日期id", required = true) @RequestParam long id) {
+        return ResultUtil.ok(sysDingDateService.getById(id));
+    }
+
+
+}