瀏覽代碼

日程计划

chenc 3 年之前
父節點
當前提交
9a8af2899b

+ 220 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/controller/CdScheduleController.java

@@ -0,0 +1,220 @@
+package org.jeecg.modules.oa.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.apache.shiro.SecurityUtils;
+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.system.vo.LoginUser;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.oa.entity.CdSchedule;
+import org.jeecg.modules.oa.service.ICdScheduleService;
+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-10-19
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="日程计划")
+@RestController
+@RequestMapping("/oa/cdSchedule")
+public class CdScheduleController extends JeecgController<CdSchedule, ICdScheduleService> {
+	@Autowired
+	private ICdScheduleService cdScheduleService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param cdSchedule
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "日程计划-分页列表查询")
+	@ApiOperation(value="日程计划-分页列表查询", notes="日程计划-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<?> queryPageList(CdSchedule cdSchedule,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<CdSchedule> queryWrapper = QueryGenerator.initQueryWrapper(cdSchedule, req.getParameterMap());
+		Page<CdSchedule> page = new Page<CdSchedule>(pageNo, pageSize);
+		IPage<CdSchedule> pageList = cdScheduleService.page(page, queryWrapper);
+		return Result.ok(pageList);
+	}
+	
+	/**
+	 * 添加
+	 *
+	 * @param cdSchedule
+	 * @return
+	 */
+	@AutoLog(value = "日程计划-添加")
+	@ApiOperation(value="日程计划-添加", notes="日程计划-添加")
+	@PostMapping(value = "/add")
+	public Result<?> add(@RequestBody CdSchedule cdSchedule) {
+		LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+		cdSchedule.setPkOrg(user.getOrgCode());
+		cdScheduleService.save(cdSchedule);
+		return Result.ok("添加成功!");
+	}
+	
+	/**
+	 * 编辑
+	 *
+	 * @param cdSchedule
+	 * @return
+	 */
+	@AutoLog(value = "日程计划-编辑")
+	@ApiOperation(value="日程计划-编辑", notes="日程计划-编辑")
+	@PutMapping(value = "/edit")
+	public Result<?> edit(@RequestBody CdSchedule cdSchedule) {
+		cdScheduleService.updateById(cdSchedule);
+		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) {
+		cdScheduleService.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.cdScheduleService.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) {
+		CdSchedule cdSchedule = cdScheduleService.getById(id);
+		return Result.ok(cdSchedule);
+	}
+
+  /**
+   * 导出excel
+   *
+   * @param request
+   * @param cdSchedule
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, CdSchedule cdSchedule) {
+      return super.exportXls(request, cdSchedule, CdSchedule.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, CdSchedule.class);
+  }
+
+  /**
+  * @Author chenchuang
+  * @Description //TODO 根据时间段查询日程计划
+  * @Date 2021/10/19 16:21
+  * @Param [cdSchedule]
+  * @return org.jeecg.common.api.vo.Result<java.util.List<org.jeecg.modules.oa.entity.CdSchedule>>
+  */
+  @GetMapping(value = "/getListByTime")
+  public Result<List<CdSchedule>> getListByTime(CdSchedule cdSchedule){
+  	Result result=new Result();
+	  try {
+		  LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+		  cdSchedule.setPkOrg(user.getOrgCode());
+		  List<CdSchedule> list=cdScheduleService.getListByTime(cdSchedule);
+		  result.setResult(list);
+		  result.success("操作成功");
+	  } catch (Exception e) {
+		  e.printStackTrace();
+		  result.error500("操作失败:"+e.getMessage());
+		  return result;
+	  }
+	  return result;
+  }
+
+  /**
+  * @Author chenchuang
+  * @Description //TODO 根据当前人查询上月我的计划 上月他人计划
+  * @Date 2021/10/19 18:10
+  * @Param [cdSchedule]
+  * @return org.jeecg.common.api.vo.Result
+  */
+  @GetMapping(value = "/getLastMonth")
+  public Result getLastMonth(CdSchedule cdSchedule){
+  	Result result = new Result();
+	  try {
+		  Integer count=cdScheduleService.getLastMonth(cdSchedule);
+		  if(count==null){
+              count=0;
+        }
+		  result.setResult(count);
+		  result.success("操作成功");
+	  } catch (Exception e) {
+		  e.printStackTrace();
+		  result.error500("操作失败:"+e.getMessage());
+	  }
+	  return result;
+  }
+
+}

+ 102 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/entity/CdSchedule.java

@@ -0,0 +1,102 @@
+package org.jeecg.modules.oa.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-10-19
+ * @Version: V1.0
+ */
+@Data
+@TableName("cd_schedule")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="cd_schedule对象", description="日程计划")
+public class CdSchedule {
+    
+	/**id*/
+	@TableId(type = IdType.ID_WORKER_STR)
+    @ApiModelProperty(value = "id")
+	private String id;
+	/**日程标题*/
+	@Excel(name = "日程标题", width = 15)
+    @ApiModelProperty(value = "日程标题")
+	private String title;
+	/**日程类型*/
+	@Excel(name = "日程类型", width = 15)
+    @ApiModelProperty(value = "日程类型")
+	private String type;
+	/**紧急程度*/
+	@Excel(name = "紧急程度", width = 15)
+    @ApiModelProperty(value = "紧急程度")
+	private String degreeOfUrgency;
+	/**开始时间*/
+	@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 startTime;
+	/**结束时间*/
+	@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 endTime;
+	/**参与人id*/
+	@Excel(name = "参与人id", width = 15)
+    @ApiModelProperty(value = "参与人id")
+	private Object participantsId;
+	/**参与人名称*/
+	@Excel(name = "参与人名称", width = 15)
+    @ApiModelProperty(value = "参与人名称")
+	private Object participantsName;
+	/**备注*/
+	@Excel(name = "备注", width = 15)
+    @ApiModelProperty(value = "备注")
+	private Object memo;
+	/**创建人*/
+	@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;
+	/**更新人*/
+	@Excel(name = "更新人", width = 15)
+    @ApiModelProperty(value = "更新人")
+	private String updateBy;
+	/**更新日期*/
+	@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 updateTime;
+	/**所属公司*/
+	@Excel(name = "所属公司", width = 15)
+    @ApiModelProperty(value = "所属公司")
+	private String pkOrg;
+
+	//删除标记
+	private String delFlag;
+
+	//查询计划数量的条件 (0无时间筛选1查询上月的2本月)
+	@TableField(exist = false)
+	private String whereTimeType;
+}

+ 33 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/mapper/CdScheduleMapper.java

@@ -0,0 +1,33 @@
+package org.jeecg.modules.oa.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.oa.entity.CdSchedule;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 日程计划
+ * @Author: jeecg-boot
+ * @Date:   2021-10-19
+ * @Version: V1.0
+ */
+public interface CdScheduleMapper extends BaseMapper<CdSchedule> {
+    /**
+    * @Author chenchuang
+    * @Description //TODO 根据时间段查询日程计划
+    * @Date 2021/10/19 16:13
+    * @Param [cdSchedule]
+    * @return java.util.List<org.jeecg.modules.oa.entity.CdSchedule>
+    */
+    List<CdSchedule> getListByTime(@Param("cdSchedule")CdSchedule cdSchedule);
+
+    /**
+    * @Author chenchuang
+    * @Description //TODO 根据当前人查询上月我的计划 上月他人计划
+    * @Date 2021/10/19 17:58
+    * @Param [cdSchedule]
+    * @return int
+    */
+    int getLastMonth(@Param("cdSchedule")CdSchedule cdSchedule);
+}

+ 34 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/mapper/xml/CdScheduleMapper.xml

@@ -0,0 +1,34 @@
+<?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.oa.mapper.CdScheduleMapper">
+    <select id="getListByTime" resultType="org.jeecg.modules.oa.entity.CdSchedule" parameterType="org.jeecg.modules.oa.entity.CdSchedule">
+        SELECT
+        *
+        FROM
+        cd_schedule
+        WHERE
+        del_flag='0'
+        AND
+        YEAR ( start_time ) <![CDATA[ >= ]]> YEAR (
+        date_sub( now(), INTERVAL 2 YEAR ))
+        AND YEAR ( start_time ) <![CDATA[ <= ]]> YEAR (
+        date_add( now(), INTERVAL 2 YEAR ))
+        AND pk_org=#{cdSchedule.pkOrg}
+        <if test="cdSchedule.createBy!=null and cdSchedule.createBy!=''">
+          AND create_by=#{cdSchedule.createBy}
+        </if>
+    </select>
+
+    <select id="getLastMonth" parameterType="org.jeecg.modules.oa.entity.CdSchedule">
+        select count(*) from cd_schedule where del_flag='0' AND pk_org=#{cdSchedule.pkOrg}
+        <if test="cdSchedule.whereTimeType=='1'">
+            AND PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( start_time, '%Y%m' ) ) =1
+        </if>
+        <if test="cdSchedule.whereTimeType=='2'">
+            AND DATE_FORMAT( start_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
+        </if>
+        <if test="cdSchedule.createBy!=null and cdSchedule.createBy!=''">
+            AND create_by=#{cdSchedule.createBy}
+        </if>
+    </select>
+</mapper>

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

@@ -0,0 +1,32 @@
+package org.jeecg.modules.oa.service;
+
+import org.jeecg.modules.oa.entity.CdSchedule;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * @Description: 日程计划
+ * @Author: jeecg-boot
+ * @Date:   2021-10-19
+ * @Version: V1.0
+ */
+public interface ICdScheduleService extends IService<CdSchedule> {
+    /**
+     * @Author chenchuang
+     * @Description //TODO 根据时间段查询日程计划
+     * @Date 2021/10/19 16:13
+     * @Param [cdSchedule]
+     * @return java.util.List<org.jeecg.modules.oa.entity.CdSchedule>
+     */
+    List<CdSchedule> getListByTime(CdSchedule cdSchedule);
+
+    /**
+     * @Author chenchuang
+     * @Description //TODO 根据当前人查询上月我的计划 上月他人计划
+     * @Date 2021/10/19 17:58
+     * @Param [cdSchedule]
+     * @return int
+     */
+    int getLastMonth(CdSchedule cdSchedule);
+}

+ 35 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/service/impl/CdScheduleServiceImpl.java

@@ -0,0 +1,35 @@
+package org.jeecg.modules.oa.service.impl;
+
+import org.jeecg.modules.oa.entity.CdSchedule;
+import org.jeecg.modules.oa.mapper.CdScheduleMapper;
+import org.jeecg.modules.oa.service.ICdScheduleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * @Description: 日程计划
+ * @Author: jeecg-boot
+ * @Date:   2021-10-19
+ * @Version: V1.0
+ */
+@Service
+@Transactional
+public class CdScheduleServiceImpl extends ServiceImpl<CdScheduleMapper, CdSchedule> implements ICdScheduleService {
+    @Autowired
+    private CdScheduleMapper cdScheduleMapper;
+
+    @Override
+    public List<CdSchedule> getListByTime(CdSchedule cdSchedule) {
+        return cdScheduleMapper.getListByTime(cdSchedule);
+    }
+
+    @Override
+    public int getLastMonth(CdSchedule cdSchedule) {
+        return cdScheduleMapper.getLastMonth(cdSchedule);
+    }
+}