EDZ 3 vuotta sitten
vanhempi
commit
fb6a8ea8ff
14 muutettua tiedostoa jossa 875 lisäystä ja 0 poistoa
  1. 9 0
      jeecg-boot-module-system/pom.xml
  2. 25 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/quartz/job/ReportIntoU8Job.java
  3. 169 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/controller/bdClockinMonthController.java
  4. 186 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/controller/viewClockInController.java
  5. 111 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/entity/ViewClockIn.java
  6. 100 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/entity/bdClockinMonth.java
  7. 48 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/mapper/bdClockinMonthMapper.java
  8. 17 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/mapper/viewClockInMapper.java
  9. 68 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/mapper/xml/bdClockinMonthMapper.xml
  10. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/mapper/xml/viewClockInMapper.xml
  11. 32 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/service/IbdClockinMonthService.java
  12. 16 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/service/IviewClockInService.java
  13. 66 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/service/impl/bdClockinMonthServiceImpl.java
  14. 23 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/service/impl/viewClockInServiceImpl.java

+ 9 - 0
jeecg-boot-module-system/pom.xml

@@ -30,6 +30,15 @@
 	</repositories>
 
 	<dependencies>
+
+		<!--  sqlserver-->
+		<dependency>
+			<groupId>com.microsoft.sqlserver</groupId>
+			<artifactId>sqljdbc4</artifactId>
+			<version>4.0</version>
+			<scope>runtime</scope>
+		</dependency>
+
 		<dependency>
 			<groupId>javax.mail</groupId>
 			<artifactId>mail</artifactId>

+ 25 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/quartz/job/ReportIntoU8Job.java

@@ -0,0 +1,25 @@
+package org.jeecg.modules.quartz.job;
+
+import org.jeecg.modules.viewClockIn.entity.bdClockinMonth;
+import org.jeecg.modules.viewClockIn.service.IbdClockinMonthService;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
+public class ReportIntoU8Job implements Job {
+    @Autowired
+    private IbdClockinMonthService bdClockinMonthService;
+
+    @Override
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+
+        bdClockinMonthService.reportIntoU8Job("2021-12");
+
+        System.out.println("======================");
+        System.out.println("======================");
+    }
+
+}

+ 169 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/controller/bdClockinMonthController.java

@@ -0,0 +1,169 @@
+package org.jeecg.modules.viewClockIn.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.viewClockIn.entity.bdClockinMonth;
+import org.jeecg.modules.viewClockIn.service.IbdClockinMonthService;
+import java.util.Date;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * @Description: 考勤月报
+ * @Author: jeecg-boot
+ * @Date:   2021-12-23
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="考勤月报")
+@RestController
+@RequestMapping("/viewClockIn/bdClockinMonth")
+public class bdClockinMonthController extends JeecgController<bdClockinMonth, IbdClockinMonthService> {
+	@Autowired
+	private IbdClockinMonthService bdClockinMonthService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param bdClockinMonth
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "考勤月报-分页列表查询")
+	@ApiOperation(value="考勤月报-分页列表查询", notes="考勤月报-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<?> queryPageList(bdClockinMonth bdClockinMonth,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+
+
+		QueryWrapper<bdClockinMonth> queryWrapper = QueryGenerator.initQueryWrapper(bdClockinMonth, req.getParameterMap());
+		Page<bdClockinMonth> page = new Page<bdClockinMonth>(pageNo, pageSize);
+		IPage<bdClockinMonth> pageList = bdClockinMonthService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 * 添加
+	 *
+	 * @param bdClockinMonth
+	 * @return
+	 */
+	@AutoLog(value = "考勤月报-添加")
+	@ApiOperation(value="考勤月报-添加", notes="考勤月报-添加")
+	@PostMapping(value = "/add")
+	public Result<?> add(@RequestBody bdClockinMonth bdClockinMonth) {
+		bdClockinMonthService.save(bdClockinMonth);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 * 编辑
+	 *
+	 * @param bdClockinMonth
+	 * @return
+	 */
+	@AutoLog(value = "考勤月报-编辑")
+	@ApiOperation(value="考勤月报-编辑", notes="考勤月报-编辑")
+	@PutMapping(value = "/edit")
+	public Result<?> edit(@RequestBody bdClockinMonth bdClockinMonth) {
+		bdClockinMonthService.updateById(bdClockinMonth);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 * 通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "考勤月报-通过id删除")
+	@ApiOperation(value="考勤月报-通过id删除", notes="考勤月报-通过id删除")
+	@DeleteMapping(value = "/delete")
+	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
+		bdClockinMonthService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 * 批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "考勤月报-批量删除")
+	@ApiOperation(value="考勤月报-批量删除", notes="考勤月报-批量删除")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.bdClockinMonthService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "考勤月报-通过id查询")
+	@ApiOperation(value="考勤月报-通过id查询", notes="考勤月报-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
+		bdClockinMonth bdClockinMonth = bdClockinMonthService.getById(id);
+		return Result.OK(bdClockinMonth);
+	}
+
+  /**
+   * 导出excel
+   *
+   * @param request
+   * @param bdClockinMonth
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, bdClockinMonth bdClockinMonth) {
+      return super.exportXls(request, bdClockinMonth, bdClockinMonth.class, "考勤月报");
+  }
+
+  /**
+   * 通过excel导入数据
+   *
+   * @param request
+   * @param response
+   * @return
+   */
+  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+      return super.importExcel(request, response, bdClockinMonth.class);
+  }
+
+}

+ 186 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/controller/viewClockInController.java

@@ -0,0 +1,186 @@
+package org.jeecg.modules.viewClockIn.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.alibaba.fastjson.JSONObject;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.viewClockIn.entity.ViewClockIn;
+import org.jeecg.modules.viewClockIn.entity.bdClockinMonth;
+import org.jeecg.modules.viewClockIn.service.IbdClockinMonthService;
+import org.jeecg.modules.viewClockIn.service.IviewClockInService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.system.base.controller.JeecgController;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * @Description: 员工考勤日报
+ * @Author: jeecg-boot
+ * @Date:   2021-12-22
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="员工考勤日报")
+@RestController
+@RequestMapping("/viewClockIn/viewClockIn")
+public class viewClockInController extends JeecgController<ViewClockIn, IviewClockInService> {
+	@Autowired
+	private IviewClockInService viewClockInService;
+	 @Autowired
+	 private IbdClockinMonthService bdClockinMonthService;
+
+	 @RequestMapping(value = "/monthReport", method = RequestMethod.PUT)
+	 public String monthReport(@RequestBody JSONObject jsonObject) {
+
+		 try {
+
+			 String nowDate = jsonObject.getString("nowDate");
+
+			 List<bdClockinMonth> list = bdClockinMonthService.selectByMonth(nowDate);
+
+			 if(list.size() == 0){
+				 return "当前月份没有考勤数据,无法生成月报";
+			 }
+
+			 bdClockinMonthService.deleteByMonth(nowDate);
+			 for(bdClockinMonth o:list){
+				 bdClockinMonthService.save(o);
+			 }
+
+		 } catch (Exception e) {
+			 log.error(e.getMessage(), e);
+			 return "月报生成失败,请稍后再试";
+		 }
+
+	 	return "true";
+	 }
+	/**
+	 * 分页列表查询
+	 *
+	 * @param viewClockIn
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "员工考勤日报-分页列表查询")
+	@ApiOperation(value="员工考勤日报-分页列表查询", notes="员工考勤日报-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<?> queryPageList(ViewClockIn viewClockIn,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<ViewClockIn> queryWrapper = QueryGenerator.initQueryWrapper(viewClockIn, req.getParameterMap());
+		Page<ViewClockIn> page = new Page<ViewClockIn>(pageNo, pageSize);
+		IPage<ViewClockIn> pageList = viewClockInService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 * 添加
+	 *
+	 * @param viewClockIn
+	 * @return
+	 */
+	@AutoLog(value = "员工考勤日报-添加")
+	@ApiOperation(value="员工考勤日报-添加", notes="员工考勤日报-添加")
+	@PostMapping(value = "/add")
+	public Result<?> add(@RequestBody ViewClockIn viewClockIn) {
+		viewClockInService.save(viewClockIn);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 * 编辑
+	 *
+	 * @param viewClockIn
+	 * @return
+	 */
+	@AutoLog(value = "员工考勤日报-编辑")
+	@ApiOperation(value="员工考勤日报-编辑", notes="员工考勤日报-编辑")
+	@PutMapping(value = "/edit")
+	public Result<?> edit(@RequestBody ViewClockIn viewClockIn) {
+		viewClockInService.updateById(viewClockIn);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 * 通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "员工考勤日报-通过id删除")
+	@ApiOperation(value="员工考勤日报-通过id删除", notes="员工考勤日报-通过id删除")
+	@DeleteMapping(value = "/delete")
+	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
+		viewClockInService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 * 批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "员工考勤日报-批量删除")
+	@ApiOperation(value="员工考勤日报-批量删除", notes="员工考勤日报-批量删除")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.viewClockInService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "员工考勤日报-通过id查询")
+	@ApiOperation(value="员工考勤日报-通过id查询", notes="员工考勤日报-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
+		ViewClockIn viewClockIn = viewClockInService.getById(id);
+		return Result.OK(viewClockIn);
+	}
+
+  /**
+   * 导出excel
+   *
+   * @param request
+   * @param viewClockIn
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, ViewClockIn viewClockIn) {
+      return super.exportXls(request, viewClockIn, ViewClockIn.class, "员工考勤日报");
+  }
+
+  /**
+   * 通过excel导入数据
+   *
+   * @param request
+   * @param response
+   * @return
+   */
+  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+      return super.importExcel(request, response, ViewClockIn.class);
+  }
+
+}

+ 111 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/entity/ViewClockIn.java

@@ -0,0 +1,111 @@
+package org.jeecg.modules.viewClockIn.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+/**
+ * @Description: 员工考勤日报
+ * @Author: jeecg-boot
+ * @Date:   2021-12-22
+ * @Version: V1.0
+ */
+@Data
+@TableName("view_clock_in_1")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="view_clock_in_1对象", description="员工考勤日报")
+public class ViewClockIn {
+    
+	/**真实姓名*/
+	@Excel(name = "真实姓名", width = 15)
+    @ApiModelProperty(value = "真实姓名")
+	private String realname;
+	/**登录账号*/
+	@Excel(name = "登录账号", width = 15)
+    @ApiModelProperty(value = "登录账号")
+	private String username;
+	/**名称*/
+	@Excel(name = "名称", width = 15)
+    @ApiModelProperty(value = "名称")
+	private String name;
+	/**shiftTimeS*/
+	@Excel(name = "shiftTimeS", width = 15)
+    @ApiModelProperty(value = "shiftTimeS")
+	private String shiftTimeS;
+	/**shiftTimeX*/
+	@Excel(name = "shiftTimeX", width = 15)
+    @ApiModelProperty(value = "shiftTimeX")
+	private String shiftTimeX;
+	/**latetimeS*/
+	@Excel(name = "迟到分钟数", width = 15)
+    @ApiModelProperty(value = "latetimeS")
+	private Integer latetimeS;
+	/**latetimeX*/
+	@Excel(name = "早退分钟数", width = 15)
+    @ApiModelProperty(value = "latetimeX")
+	private Integer latetimeX;
+	/**用户id*/
+	@Excel(name = "用户id", width = 15)
+    @ApiModelProperty(value = "用户id")
+	private String userId;
+	/**viewDate*/
+	@Excel(name = "viewDate", width = 15)
+    @ApiModelProperty(value = "viewDate")
+	private String viewDate;
+	/**gotoTime*/
+	@Excel(name = "gotoTime", width = 15)
+    @ApiModelProperty(value = "gotoTime")
+	private String gotoTime;
+	/**closingTime*/
+	@Excel(name = "closingTime", width = 15)
+    @ApiModelProperty(value = "closingTime")
+	private String closingTime;
+	/**gotoState*/
+	@Excel(name = "gotoState", width = 15)
+    @ApiModelProperty(value = "gotoState")
+	private String gotoState;
+	/**closingDate*/
+	@Excel(name = "closingDate", width = 15)
+    @ApiModelProperty(value = "closingState")
+	private String closingState;
+	/**加班事由*/
+	@Excel(name = "加班事由", width = 15)
+    @ApiModelProperty(value = "加班事由")
+	private String demo;
+	/**加班时长*/
+	@Excel(name = "加班时长", width = 15)
+    @ApiModelProperty(value = "加班时长")
+	private String duration;
+	/**加班开始时间*/
+	@Excel(name = "加班开始时间", width = 15)
+    @ApiModelProperty(value = "加班开始时间")
+	private String durationBeginDate;
+	/**加班结束时间*/
+	@Excel(name = "加班结束时间", width = 15)
+    @ApiModelProperty(value = "加班结束时间")
+	private String durationEndDate;
+	/**请假开始时间*/
+	@Excel(name = "请假开始时间", width = 15)
+    @ApiModelProperty(value = "请假开始时间")
+	private String holidayStartDate;
+	/**加班时长*/
+	@Excel(name = "请假结束时间", width = 15)
+    @ApiModelProperty(value = "请假结束时间")
+	private String holidayEndDate;
+	/**假期类型*/
+	@Excel(name = "假期类型", width = 15)
+    @ApiModelProperty(value = "假期类型")
+	private String holidayType;
+}

+ 100 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/entity/bdClockinMonth.java

@@ -0,0 +1,100 @@
+package org.jeecg.modules.viewClockIn.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+/**
+ * @Description: 考勤月报
+ * @Author: jeecg-boot
+ * @Date:   2021-12-23
+ * @Version: V1.0
+ */
+@Data
+@TableName("bd_clockin_month")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="bd_clockin_month对象", description="考勤月报")
+public class bdClockinMonth {
+
+	private String years;//年度
+
+	private String months;//月份
+
+	private int syU8;//是否同步至u8(0否,1是)
+
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+	@ApiModelProperty(value = "同步时间")
+	private Date syTime;//同步时间
+
+	private String syMsg;//同步消息
+
+	/**主键id考勤月报*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键id考勤月报")
+	private String id;
+	/**月报月份*/
+	@Excel(name = "月报月份", width = 15)
+    @ApiModelProperty(value = "月报月份")
+	private String monthTime;
+	/**人员姓名*/
+	@Excel(name = "人员姓名", width = 15)
+    @ApiModelProperty(value = "人员姓名")
+	private String personName;
+	/**人员编码*/
+	@Excel(name = "人员编码", width = 15)
+    @ApiModelProperty(value = "人员编码")
+	private String personCode;
+	/**人员主键*/
+	@Excel(name = "人员主键", width = 15)
+    @ApiModelProperty(value = "人员主键")
+	private String personId;
+	/**本月迟到分钟数*/
+	@Excel(name = "本月迟到分钟数", width = 15)
+    @ApiModelProperty(value = "本月迟到分钟数")
+	private Integer latetimeS;
+	/**本月早退分钟数*/
+	@Excel(name = "本月早退分钟数", width = 15)
+    @ApiModelProperty(value = "本月早退分钟数")
+	private Integer latetimeX;
+	/**本月加班时长*/
+	@Excel(name = "本月加班时长", width = 15)
+    @ApiModelProperty(value = "本月加班时长")
+	private Integer duration;
+	/**本月请假时长(默认小时)*/
+	@Excel(name = "本月请假时长(默认小时)", width = 15)
+    @ApiModelProperty(value = "本月请假时长(默认小时)")
+	private String holidayTime;
+	/**请假类型*/
+	@Excel(name = "请假类型", width = 15)
+    @ApiModelProperty(value = "请假类型")
+	private String holidayType;
+	/**应到天数*/
+	@Excel(name = "应到天数", width = 15)
+    @ApiModelProperty(value = "应到天数")
+	private Integer shouldDays;
+
+	/**创建人*/
+	@Excel(name = "创建人", width = 15)
+	@ApiModelProperty(value = "创建人")
+	private String createBy;
+	/**创建时间*/
+	@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+	@ApiModelProperty(value = "创建时间")
+	private Date createTime;
+
+}

+ 48 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/mapper/bdClockinMonthMapper.java

@@ -0,0 +1,48 @@
+package org.jeecg.modules.viewClockIn.mapper;
+
+import java.util.List;
+import java.util.Map;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.viewClockIn.entity.bdClockinMonth;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 考勤月报
+ * @Author: jeecg-boot
+ * @Date:   2021-12-23
+ * @Version: V1.0
+ */
+public interface bdClockinMonthMapper extends BaseMapper<bdClockinMonth> {
+
+    /**
+     * 生成月报使用
+     * @param nowDate
+     * @return
+     */
+    public List<bdClockinMonth> selectByMonth(String nowDate);
+
+    /**
+     * 查询所有未同步到u8的数据
+     * @param nowDate
+     * @return
+     */
+    public List<bdClockinMonth> selectAllByMonth(String nowDate);
+
+    int deleteByMonth(String nowDate);
+
+    @DS("multi-datasource1")
+    List<Map<String,Object>> selectTest();
+
+    /**
+     * 批量插入U8月报
+     * @param list
+     * @return
+     */
+    @DS("multi-datasource1")
+    int insertU8WaGZData(List<bdClockinMonth> list);
+
+    int updateSy(@Param("list") List<bdClockinMonth> list);
+
+}

+ 17 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/mapper/viewClockInMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.viewClockIn.mapper;
+
+import org.jeecg.modules.viewClockIn.entity.ViewClockIn;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.List;
+
+/**
+ * @Description: 员工考勤日报
+ * @Author: jeecg-boot
+ * @Date:   2021-12-22
+ * @Version: V1.0
+ */
+public interface viewClockInMapper extends BaseMapper<ViewClockIn> {
+
+
+}

+ 68 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/mapper/xml/bdClockinMonthMapper.xml

@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.viewClockIn.mapper.bdClockinMonthMapper">
+
+    <select id="selectByMonth"  resultType="org.jeecg.modules.viewClockIn.entity.bdClockinMonth">
+
+        select a.view_date monthTime,a.years,a.months,a.realname personName,a.user_id personId,a.username personCode,
+            sum(a.lateTime_s) latetimeS,sum(a.lateTime_x) latetimeX ,sum(a.duration) duration,sum(a.sj_time) holidayTime
+            from (
+                select realname,user_id,username,DATE_FORMAT(view_date,'%Y-%m') view_date,
+                    DATE_FORMAT(view_date,'%Y') years,
+                    DATE_FORMAT(view_date,'%m') months,
+                case
+                    when lateTime_s &lt; 0 then 0
+                    else lateTime_s
+                end lateTime_s,
+                case
+                    when lateTime_x &lt; 0 then 0
+                    else lateTime_x
+                end lateTime_x,
+                duration,
+                <!-- MAX(CASE `holiday_type` WHEN '事假' THEN TIMESTAMPDIFF(day,holiday_start_date,holiday_end_date) ELSE 0 END) as 'sj_time',-->
+                TIMESTAMPDIFF(day,holiday_start_date,holiday_end_date) sj_time,
+                holiday_type,holiday_start_date,holiday_end_date from view_clock_in_1
+                where DATE_FORMAT(view_date,'%Y-%m') = #{nowDate}
+            ) as a
+        group by a.realname,a.user_id,a.username,a.view_date,a.years,a.months
+
+    </select>
+
+    <select id="selectAllByMonth"  resultType="org.jeecg.modules.viewClockIn.entity.bdClockinMonth">
+        select * from
+               bd_clockin_month where sy_u8 = 0 and month_time = #{nowDate}
+    </select>
+
+    <delete id="deleteByMonth">
+        delete from bd_clockin_month where month_time = #{nowDate}
+    </delete>
+
+    <select id="selectTest" resultType="Map">
+        select * from U8_CRM_Stock
+    </select>
+    
+    <insert id="insertU8WaGZData" parameterType="java.util.List" useGeneratedKeys="false">
+        insert into WA_GZData (cGZGradeNum,cPsn_Num ,cPsn_Name ,iYear,iMonth,cDept_Num )
+        values
+        <foreach collection="list" item="item" index="index" separator=",">
+            (
+               '1',
+               #{item.personCode},
+               #{item.personName},
+               #{item.years},
+               #{item.months},
+               '01'
+            )
+        </foreach>
+    </insert>
+
+    <update id="updateSy" parameterType="java.util.List">
+        <foreach collection="list" item="item" index="index" separator=",">
+            update bd_clockin_month set sy_u8 = '1',sy_time = NOW() where id =
+            #{item.id}
+        </foreach>
+    </update>
+
+
+
+</mapper>

+ 5 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/mapper/xml/viewClockInMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.viewClockIn.mapper.viewClockInMapper">
+
+</mapper>

+ 32 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/service/IbdClockinMonthService.java

@@ -0,0 +1,32 @@
+package org.jeecg.modules.viewClockIn.service;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import org.jeecg.modules.viewClockIn.entity.ViewClockIn;
+import org.jeecg.modules.viewClockIn.entity.bdClockinMonth;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 考勤月报
+ * @Author: jeecg-boot
+ * @Date:   2021-12-23
+ * @Version: V1.0
+ */
+public interface IbdClockinMonthService extends IService<bdClockinMonth> {
+
+    List<bdClockinMonth> selectByMonth(String nowDate);
+
+    List<bdClockinMonth> selectAllByMonth(String nowDate);
+
+    int deleteByMonth(String nowDate);
+
+    List<Map<String,Object>> selectTest();
+
+    int insertU8WaGZData(List<bdClockinMonth> list);
+
+    int updateSy(List<bdClockinMonth> list);
+
+    void reportIntoU8Job(String nowDate);
+}

+ 16 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/service/IviewClockInService.java

@@ -0,0 +1,16 @@
+package org.jeecg.modules.viewClockIn.service;
+
+import org.jeecg.modules.viewClockIn.entity.ViewClockIn;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * @Description: 员工考勤日报
+ * @Author: jeecg-boot
+ * @Date:   2021-12-22
+ * @Version: V1.0
+ */
+public interface IviewClockInService extends IService<ViewClockIn> {
+
+}

+ 66 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/service/impl/bdClockinMonthServiceImpl.java

@@ -0,0 +1,66 @@
+package org.jeecg.modules.viewClockIn.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import org.jeecg.modules.viewClockIn.entity.ViewClockIn;
+import org.jeecg.modules.viewClockIn.entity.bdClockinMonth;
+import org.jeecg.modules.viewClockIn.mapper.bdClockinMonthMapper;
+import org.jeecg.modules.viewClockIn.mapper.viewClockInMapper;
+import org.jeecg.modules.viewClockIn.service.IbdClockinMonthService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 考勤月报
+ * @Author: jeecg-boot
+ * @Date:   2021-12-23
+ * @Version: V1.0
+ */
+@Service
+public class bdClockinMonthServiceImpl extends ServiceImpl<bdClockinMonthMapper, bdClockinMonth> implements IbdClockinMonthService {
+    @Autowired
+    private bdClockinMonthMapper clockinMonthMapper;
+
+    public List<bdClockinMonth> selectByMonth(String nowDate){
+        return clockinMonthMapper.selectByMonth(nowDate);
+    }
+
+    public List<bdClockinMonth> selectAllByMonth(String nowDate){
+        return clockinMonthMapper.selectAllByMonth(nowDate);
+    }
+
+    public int deleteByMonth(String nowDate){
+        return clockinMonthMapper.deleteByMonth(nowDate);
+    }
+
+    public List<Map<String,Object>> selectTest(){
+        return clockinMonthMapper.selectTest();
+    }
+
+    public int insertU8WaGZData(List<bdClockinMonth> list){
+        return clockinMonthMapper.insertU8WaGZData(list);
+    }
+    public int updateSy(List<bdClockinMonth> list){
+        return clockinMonthMapper.updateSy(list);
+    }
+
+
+    /**
+     * 定时任务,同步月报至u8
+     * @param nowDate
+     */
+    public void reportIntoU8Job(String nowDate){
+        List<bdClockinMonth> list = clockinMonthMapper.selectAllByMonth(nowDate);//获取当月要同步的数据
+        if(list.size() > 0){
+            int st = clockinMonthMapper.insertU8WaGZData(list);//插入u8数据库表WA_GZData
+            if(st != 0){
+                clockinMonthMapper.updateSy(list);//更新月报同步状态
+            }
+        }
+    }
+
+}

+ 23 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/viewClockIn/service/impl/viewClockInServiceImpl.java

@@ -0,0 +1,23 @@
+package org.jeecg.modules.viewClockIn.service.impl;
+
+import org.jeecg.modules.viewClockIn.entity.ViewClockIn;
+import org.jeecg.modules.viewClockIn.mapper.viewClockInMapper;
+import org.jeecg.modules.viewClockIn.service.IviewClockInService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.util.List;
+
+/**
+ * @Description: 员工考勤日报
+ * @Author: jeecg-boot
+ * @Date:   2021-12-22
+ * @Version: V1.0
+ */
+@Service
+public class viewClockInServiceImpl extends ServiceImpl<viewClockInMapper, ViewClockIn> implements IviewClockInService {
+
+
+}