LiGuang před 2 roky
rodič
revize
3c4628304a
24 změnil soubory, kde provedl 538 přidání a 45 odebrání
  1. 0 4
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userchange/controller/UserChageController.java
  2. 32 0
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/usercontract/controller/UserContractController.java
  3. 4 3
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/usercontract/entity/UserContract.java
  4. 2 1
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/usercontract/mapper/UserContractMapper.java
  5. 212 3
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/usercontract/mapper/xml/UserContractMapper.xml
  6. 18 1
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/usercontract/service/impl/UserContractServiceImpl.java
  7. 14 0
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userquit/controller/UserQuitController.java
  8. 2 0
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userquit/mapper/UserQuitMapper.java
  9. 9 1
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userquit/mapper/xml/UserQuitMapper.xml
  10. 2 0
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userquit/service/IUserQuitService.java
  11. 5 0
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userquit/service/impl/UserQuitServiceImpl.java
  12. 50 8
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/vacation/controller/VacationController.java
  13. 27 6
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/vacation/entity/Vacation.java
  14. 4 0
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/vacation/mapper/VacationMapper.java
  15. 28 0
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/vacation/mapper/xml/VacationMapper.xml
  16. 5 0
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/vacation/service/IVacationService.java
  17. 47 4
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/vacation/service/impl/VacationServiceImpl.java
  18. 2 2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/WeixinUserImpl.java
  19. 49 2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/workOvertime/controller/workOvertimeController.java
  20. 7 4
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/workOvertime/entity/workOvertime.java
  21. 2 1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/workOvertime/mapper/workOvertimeMapper.java
  22. 14 2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/workOvertime/mapper/xml/workOvertimeMapper.xml
  23. 1 1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/workOvertime/service/IworkOvertimeService.java
  24. 2 2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/workOvertime/service/impl/workOvertimeServiceImpl.java

+ 0 - 4
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userchange/controller/UserChageController.java

@@ -84,8 +84,6 @@ public class UserChageController extends JeecgController<UserChage, IUserChageSe
 			orderItem.setAsc(true);
 			if (s[1].equals("DESC")){
 				orderItem.setAsc(false);
-			}if (s[0].equals("create_time")){
-				orderItem.setColumn("time");
 			}
 			orderItems.add(orderItem);
 		}
@@ -197,8 +195,6 @@ public class UserChageController extends JeecgController<UserChage, IUserChageSe
 		  orderItem.setAsc(true);
 		  if (s[1].equals("DESC")){
 			  orderItem.setAsc(false);
-		  }if (s[0].equals("create_time")){
-			  orderItem.setColumn("time");
 		  }
 		  orderItems.add(orderItem);
 	  }

+ 32 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/usercontract/controller/UserContractController.java

@@ -7,6 +7,7 @@ import java.net.URLDecoder;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.query.QueryGenerator;
@@ -71,6 +72,21 @@ public class UserContractController extends JeecgController<UserContract, IUserC
 								   HttpServletRequest req) {
 		QueryWrapper<UserContract> queryWrapper = QueryGenerator.initQueryWrapper(userContract, req.getParameterMap());
 		Page<UserContract> page = new Page<UserContract>(pageNo, pageSize);
+		List<OrderItem>orderItems=new ArrayList<>();
+		if (queryWrapper.getExpression().getOrderBy()!=null&&queryWrapper.getExpression().getOrderBy().size()>0){
+			String[] s = queryWrapper.getExpression().getOrderBy().get(0).getSqlSegment().split(" ");
+			OrderItem orderItem=new OrderItem();
+			orderItem.setColumn(s[0]);
+			orderItem.setAsc(true);
+			if(s[0].equals("create_time")){
+				orderItem.setColumn("a.create_time");
+			}
+			if (s[1].equals("DESC")){
+				orderItem.setAsc(false);
+			}
+			orderItems.add(orderItem);
+		}
+		page.setOrders(orderItems);
 		//IPage<UserContract> pageList = userContractService.page(page, queryWrapper);
 		Page<UserContract> lists = userContractService.lists(page, userContract);
 		return Result.OK(lists);
@@ -155,6 +171,22 @@ public class UserContractController extends JeecgController<UserContract, IUserC
   @RequestMapping(value = "/exportXls")
   public ModelAndView exportXls(HttpServletRequest request, UserContract userContract) {
 	  Page<UserContract> page = new Page<UserContract>(1, 10000);
+	  QueryWrapper<UserContract> queryWrapper = QueryGenerator.initQueryWrapper(userContract, request.getParameterMap());
+	  List<OrderItem>orderItems=new ArrayList<>();
+	  if (queryWrapper.getExpression().getOrderBy()!=null&&queryWrapper.getExpression().getOrderBy().size()>0){
+		  String[] s = queryWrapper.getExpression().getOrderBy().get(0).getSqlSegment().split(" ");
+		  OrderItem orderItem=new OrderItem();
+		  orderItem.setColumn(s[0]);
+		  orderItem.setAsc(true);
+		  if(s[0].equals("create_time")){
+			  orderItem.setColumn("a.create_time");
+		  }
+		  if (s[1].equals("DESC")){
+			  orderItem.setAsc(false);
+		  }
+		  orderItems.add(orderItem);
+	  }
+	  page.setOrders(orderItems);
 	  Page<UserContract> lists = userContractService.lists(page, userContract);
 	  LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
 	  ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());

+ 4 - 3
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/usercontract/entity/UserContract.java

@@ -33,21 +33,22 @@ public class UserContract {
 	@TableId(type = IdType.ASSIGN_ID)
     @ApiModelProperty(value = "id")
 	private java.lang.String id;
+	@Excel(name = "工号", width = 15)
+	private  transient String workNo;
 	@Excel(name = "员工姓名", width = 15)
 	private  transient String realname;
 	@Excel(name = "一级部门", width = 15)
 	private  transient String deptName;
 	@Excel(name = "二级部门", width = 15)
 	private  transient String deptName1;
-	@Excel(name = "三级部门", width = 15)
 	private  transient String deptName2;
-	@Excel(name = "末级部门", width = 15)
 	private  transient String deptNames;
 	/**用户id*/
 
     @ApiModelProperty(value = "用户id")
 	private java.lang.String userId;
-
+    //状态(0正常,1已过期,2临近到期,3.即将到期)
+	private java.lang.String state;
 
 	@ApiModelProperty(value = "部门id")
 	private java.lang.String deptId;

+ 2 - 1
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/usercontract/mapper/UserContractMapper.java

@@ -17,7 +17,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface UserContractMapper extends BaseMapper<UserContract> {
 
-    List<UserContract>lists(Page<UserContract> page,@Param("userContract")UserContract userContract,@Param("deptids")List<String>deptids);
+    List<UserContract>lists(Page<UserContract> page,@Param("userContract")UserContract userContract,@Param("deptids")List<String>deptids,
+                            @Param("dateTime")String dateTime,@Param("oneMonth")String oneMonth,@Param("twoMonth")String twoMonth,@Param("startDate")String startDate,@Param("endDate")String endDate);
 
     List<UserContract>list(@Param("userid")String userid);
 }

+ 212 - 3
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/usercontract/mapper/xml/UserContractMapper.xml

@@ -3,9 +3,14 @@
 <mapper namespace="org.jeecg.modules.geke.usercontract.mapper.UserContractMapper">
 
     <select id="lists" resultType="org.jeecg.modules.geke.usercontract.entity.UserContract">
-        select a.*,b.realname as 'realname' from geke_user_contract a left join sys_user b on a.user_id=b.id
-        where b.del_flag='0'
-        <if test="userContract.realname!=null and ''!=userContract.realname">
+        <if test="userContract.state==null or userContract.state=='' ">
+        select a.*from (
+            <!-- 已过期-->select a.*,b.realname as 'realname','已到期'as 'state',b.work_no  from geke_user_contract
+            a left join sys_user b on a.user_id=b.id
+            where b.
+            del_flag='0'
+            <if
+                    test="userContract.realname!=null and ''!=userContract.realname">
             and b.realname like concat(concat('%',#{userContract.realname}),'%')
         </if>
         <if test="userContract.contractType!=null and ''!=userContract.contractType">
@@ -17,6 +22,210 @@
                 #{id}
             </foreach>
         </if>
+          <if test="startDate!=null and ''!=startDate">
+              and date_format(a.end_date,'%Y-%m-%d')>=date_format(#{startDate},'%Y-%m-%d')
+          </if>
+            <if test="endDate!=null and ''!=endDate">
+                and date_format(a.end_date,'%Y-%m-%d')&lt;=date_format(#{endDate},'%Y-%m-%d')
+            </if>
+        <if test="dateTime!=null and ''!=dateTime">
+            and date_format(a.end_date,'%Y-%m-%d')&lt;date_format(#{dateTime},'%Y-%m-%d')
+        </if>
+        <!--即将过期 -->
+            UNION ALL
+            select a.*,b.realname as 'realname','即将到期'as 'state',b.work_no  from geke_user_contract a
+            left join sys_user b on a.user_id=b.id
+            where b.del_flag='0'
+            <if test="userContract.realname!=null and ''!=userContract.realname">
+                and b.realname like concat(concat('%',#{userContract.realname}),'%')
+            </if>
+            <if test="userContract.contractType!=null and ''!=userContract.contractType">
+                and a.contract_type=#{userContract.contractType}
+            </if>
+            <if test="deptids!=null and deptids.size()>0">
+                and a.dept_id in
+                <foreach collection="deptids" index="index" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
+            <if test="startDate!=null and ''!=startDate">
+                and date_format(a.end_date,'%Y-%m-%d')>=date_format(#{startDate},'%Y-%m-%d')
+            </if>
+            <if test="endDate!=null and ''!=endDate">
+                and date_format(a.end_date,'%Y-%m-%d')&lt;=date_format(#{endDate},'%Y-%m-%d')
+            </if>
+            <if test="dateTime!=null and ''!=dateTime">
+                and date_format(a.end_date,'%Y-%m-%d')>=date_format(#{dateTime},'%Y-%m-%d')
+            </if>
+            <if test="oneMonth!=null and ''!=oneMonth">
+                and date_format(a.end_date,'%Y-%m-%d')&lt;=date_format(#{oneMonth},'%Y-%m-%d')
+            </if>
+            <!--临近过期 -->
+            UNION ALL
+            select a.*,b.realname as 'realname','临近到期'as 'state',b.work_no  from geke_user_contract a
+            left join sys_user b on a.user_id=b.id
+            where b.del_flag='0'
+            <if test="userContract.realname!=null and ''!=userContract.realname">
+                and b.realname like concat(concat('%',#{userContract.realname}),'%')
+            </if>
+            <if test="userContract.contractType!=null and ''!=userContract.contractType">
+                and a.contract_type=#{userContract.contractType}
+            </if>
+            <if test="deptids!=null and deptids.size()>0">
+                and a.dept_id in
+                <foreach collection="deptids" index="index" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
+            <if test="startDate!=null and ''!=startDate">
+                and date_format(a.end_date,'%Y-%m-%d')>=date_format(#{startDate},'%Y-%m-%d')
+            </if>
+            <if test="endDate!=null and ''!=endDate">
+                and date_format(a.end_date,'%Y-%m-%d')&lt;=date_format(#{endDate},'%Y-%m-%d')
+            </if>
+            <if test="dateTime!=null and ''!=dateTime">
+                and date_format(a.end_date,'%Y-%m-%d')>date_format(#{dateTime},'%Y-%m-%d')
+            </if>
+            <if test="twoMonth!=null and ''!=twoMonth">
+                and date_format(a.end_date,'%Y-%m-%d')&lt;=date_format(#{twoMonth},'%Y-%m-%d')
+            </if>
+            <!--正常 -->
+            UNION ALL
+            select a.*,b.realname as 'realname','正常'as 'state',b.work_no  from geke_user_contract a left
+            join sys_user b on a.user_id=b.id
+            where b.del_flag='0'
+            <if test="userContract.realname!=null and ''!=userContract.realname">
+                and b.realname like concat(concat('%',#{userContract.realname}),'%')
+            </if>
+            <if test="userContract.contractType!=null and ''!=userContract.contractType">
+                and a.contract_type=#{userContract.contractType}
+            </if>
+            <if test="deptids!=null and deptids.size()>0">
+                and a.dept_id in
+                <foreach collection="deptids" index="index" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
+            <if test="startDate!=null and ''!=startDate">
+                and date_format(a.end_date,'%Y-%m-%d')>=date_format(#{startDate},'%Y-%m-%d')
+            </if>
+            <if test="endDate!=null and ''!=endDate">
+                and date_format(a.end_date,'%Y-%m-%d')&lt;=date_format(#{endDate},'%Y-%m-%d')
+            </if>
+            <if test="twoMonth!=null and ''!=twoMonth">
+                and date_format(a.end_date,'%Y-%m-%d')>date_format(#{twoMonth},'%Y-%m-%d')
+            </if>
+            ) a
+        </if>
+
+        <if test="userContract.state==0 or userContract.state=='0' ">
+            select a.*,b.realname as 'realname','正常'as 'state',b.work_no  from geke_user_contract a left join sys_user b on a.user_id=b.id
+            where b.del_flag='0'
+            <if test="userContract.realname!=null and ''!=userContract.realname">
+                and b.realname like concat(concat('%',#{userContract.realname}),'%')
+            </if>
+            <if test="userContract.contractType!=null and ''!=userContract.contractType">
+                and a.contract_type=#{userContract.contractType}
+            </if>
+            <if test="deptids!=null and deptids.size()>0">
+                and a.dept_id in
+                <foreach collection="deptids" index="index" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
+            <if test="startDate!=null and ''!=startDate">
+                and date_format(a.end_date,'%Y-%m-%d')>=date_format(#{startDate},'%Y-%m-%d')
+            </if>
+            <if test="endDate!=null and ''!=endDate">
+                and date_format(a.end_date,'%Y-%m-%d')&lt;=date_format(#{endDate},'%Y-%m-%d')
+            </if>
+            <if test="twoMonth!=null and ''!=twoMonth">
+                and date_format(a.end_date,'%Y-%m-%d')>date_format(#{twoMonth},'%Y-%m-%d')
+            </if>
+        </if>
+
+        <if test="userContract.state==1 or userContract.state=='1' ">
+            select a.*,b.realname as 'realname','已到期'as 'state',b.work_no  from geke_user_contract a left join sys_user b on a.user_id=b.id
+            where b.del_flag='0'
+            <if test="userContract.realname!=null and ''!=userContract.realname">
+                and b.realname like concat(concat('%',#{userContract.realname}),'%')
+            </if>
+            <if test="userContract.contractType!=null and ''!=userContract.contractType">
+                and a.contract_type=#{userContract.contractType}
+            </if>
+            <if test="deptids!=null and deptids.size()>0">
+                and a.dept_id in
+                <foreach collection="deptids" index="index" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
+            <if test="startDate!=null and ''!=startDate">
+                and date_format(a.end_date,'%Y-%m-%d')>=date_format(#{startDate},'%Y-%m-%d')
+            </if>
+            <if test="endDate!=null and ''!=endDate">
+                and date_format(a.end_date,'%Y-%m-%d')&lt;=date_format(#{endDate},'%Y-%m-%d')
+            </if>
+            <if test="dateTime!=null and ''!=dateTime">
+                and date_format(a.end_date,'%Y-%m-%d')&lt;date_format(#{dateTime},'%Y-%m-%d')
+            </if>
+        </if>
+
+        <if test="userContract.state==2 or userContract.state=='2' ">
+            select a.*,b.realname as 'realname','临近到期'as 'state',b.work_no  from geke_user_contract a left join sys_user b on a.user_id=b.id
+            where b.del_flag='0'
+            <if test="userContract.realname!=null and ''!=userContract.realname">
+                and b.realname like concat(concat('%',#{userContract.realname}),'%')
+            </if>
+            <if test="userContract.contractType!=null and ''!=userContract.contractType">
+                and a.contract_type=#{userContract.contractType}
+            </if>
+            <if test="deptids!=null and deptids.size()>0">
+                and a.dept_id in
+                <foreach collection="deptids" index="index" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
+            <if test="startDate!=null and ''!=startDate">
+                and date_format(a.end_date,'%Y-%m-%d')>=date_format(#{startDate},'%Y-%m-%d')
+            </if>
+            <if test="endDate!=null and ''!=endDate">
+                and date_format(a.end_date,'%Y-%m-%d')&lt;=date_format(#{endDate},'%Y-%m-%d')
+            </if>
+            <if test="dateTime!=null and ''!=dateTime">
+                and date_format(a.end_date,'%Y-%m-%d')>date_format(#{dateTime},'%Y-%m-%d')
+            </if>
+            <if test="twoMonth!=null and ''!=twoMonth">
+                and date_format(a.end_date,'%Y-%m-%d')&lt;=date_format(#{twoMonth},'%Y-%m-%d')
+            </if>
+        </if>
+        <if test="userContract.state==3 or userContract.state=='3' ">
+            select a.*,b.realname as 'realname','即将到期'as 'state',b.work_no  from geke_user_contract a left join sys_user b on a.user_id=b.id
+            where b.del_flag='0'
+            <if test="userContract.realname!=null and ''!=userContract.realname">
+                and b.realname like concat(concat('%',#{userContract.realname}),'%')
+            </if>
+            <if test="userContract.contractType!=null and ''!=userContract.contractType">
+                and a.contract_type=#{userContract.contractType}
+            </if>
+            <if test="deptids!=null and deptids.size()>0">
+                and a.dept_id in
+                <foreach collection="deptids" index="index" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
+            <if test="startDate!=null and ''!=startDate">
+                and date_format(a.end_date,'%Y-%m-%d')>=date_format(#{startDate},'%Y-%m-%d')
+            </if>
+            <if test="endDate!=null and ''!=endDate">
+                and date_format(a.end_date,'%Y-%m-%d')&lt;=date_format(#{endDate},'%Y-%m-%d')
+            </if>
+            <if test="dateTime!=null and ''!=dateTime">
+                and date_format(a.end_date,'%Y-%m-%d')>=date_format(#{dateTime},'%Y-%m-%d')
+            </if>
+            <if test="oneMonth!=null and ''!=oneMonth">
+                and date_format(a.end_date,'%Y-%m-%d')&lt;=date_format(#{oneMonth},'%Y-%m-%d')
+            </if>
+        </if>
     </select>
     <select id="list" resultType="org.jeecg.modules.geke.usercontract.entity.UserContract">
         select *from geke_user_contract where 1=1

+ 18 - 1
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/usercontract/service/impl/UserContractServiceImpl.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.geke.usercontract.service.impl;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.common.util.DateUtils;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.geke.makeUpCard.mapper.MakeUpCardMapper;
 import org.jeecg.modules.geke.makeUpCard.service.IMakeUpCardService;
@@ -14,7 +15,9 @@ import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -40,8 +43,22 @@ public class UserContractServiceImpl extends ServiceImpl<UserContractMapper, Use
         }if(oConvertUtils.isNotEmpty(userContract.getRealname())){
             userContract.setRealname(userContract.getRealname().trim());
         }
-        List<UserContract> lists = userContractMapper.lists(page, userContract, subDepIdsByDepId);
+        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
+        String startDate=null;
+        String endDate=null;
+        if (oConvertUtils.isNotEmpty(userContract.getDeptName2())&&!userContract.getDeptName2().equals(",")){
+            startDate=userContract.getDeptName2().split(",")[0];
+            endDate=userContract.getDeptName2().split(",")[1];
+        }
+        Date date=new Date();
+        String dateTime=df.format(date);
+        date.setMonth(date.getMonth()+1);
+        String oneMonth=df.format(date);
+        date.setMonth(date.getMonth()+1);
+        String towMonth=df.format(date);
+        List<UserContract> lists = userContractMapper.lists(page, userContract, subDepIdsByDepId,dateTime,oneMonth,towMonth,startDate,endDate);
         lists.forEach(str->{
+
             List<Map<String, Object>> userid = userPrizeMapper.queryDept(str.getUserId());
             if (userid!=null&&userid.size()>0){
                 String code=userid.get(0).get("code").toString();

+ 14 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userquit/controller/UserQuitController.java

@@ -203,6 +203,20 @@ public class UserQuitController extends JeecgController<UserQuit, IUserQuitServi
 		return Result.OK(userQuit);
 	}
 
+	 /**
+	  * 通过日期区间查询
+	  *
+	  * @param
+	  * @return
+	  */
+	 @AutoLog(value = "入职,离职信息-离职率")
+	 @ApiOperation(value="入职,离职信息-离职率", notes="入职,离职信息-离职率")
+	 @GetMapping(value = "/queryByDate")
+	 public Result<?> queryByDate(@RequestParam(name="startDate",required=true) String startDate,@RequestParam(name="endDate",required=true) String endDate) {
+		 String userQuitCount = userQuitService.getUserQuitCount(startDate, endDate);
+		 return Result.OK(userQuitCount);
+	 }
+
   /**
    * 导出excel
    *

+ 2 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userquit/mapper/UserQuitMapper.java

@@ -28,4 +28,6 @@ public interface UserQuitMapper extends BaseMapper<UserQuit> {
     List<UserQuit>getUserIds(@Param("userid")String userid);
 
     boolean updateByUserid(@Param("userid")List<String>userid);
+    //离职率
+    String getUserQuitCount(@Param("startDate") String startDate,@Param("endDate") String endDate);
 }

+ 9 - 1
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userquit/mapper/xml/UserQuitMapper.xml

@@ -23,7 +23,7 @@
     </delete>
     <select id="list" resultType="org.jeecg.modules.geke.userquit.entity.UserQuit">
         select a.user_name,a.id,b.work_no as 'workNo',b.category as 'category',b.sfz_code as 'sfzCode',b.entry_Date as 'entryDate',
-        a.dept,a.new_Date,a.post,b.post as 'posts',a.remarks,a.state,d.org_code as 'orgCode'
+        a.dept,a.new_Date,a.post,b.post as 'posts',a.remarks,a.state,d.org_code as 'orgCode',a.status
         from geke_user_quit a
         left join sys_user  b on a.user_id=b.id
         left join sys_user_depart c on b.id=c.user_id
@@ -75,4 +75,12 @@
         </if>
         and new_date is null
     </select>
+    <select id="getUserQuitCount" resultType="java.lang.String">
+        select  (b.xsum/a.sum)*100 as 'count' from (
+        select count(*) as 'sum' from sys_user where (employment_status='10'
+        and date_format(entry_date,'%Y-%m-%d')&lt;=date_format(#{endDate},'%Y-%m-%d')) or
+        (employment_status='30' and date_format(term_Date,'%Y-%m-%d')>=date_format(#{startDate},'%Y-%m-%d') and date_format(term_Date,'%Y-%m-%d')&lt;=date_format(#{endDate},'%Y-%m-%d') )) a
+        left join (
+        select count(*)as 'xsum' from sys_user where employment_status='30' and date_format(term_Date,'%Y-%m-%d')>=date_format(#{startDate},'%Y-%m-%d') and date_format(term_Date,'%Y-%m-%d')&lt;=date_format(#{endDate},'%Y-%m-%d'))b on 1=1
+    </select>
 </mapper>

+ 2 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userquit/service/IUserQuitService.java

@@ -23,4 +23,6 @@ public interface IUserQuitService extends IService<UserQuit> {
     List<UserQuit>lists(String startDate);
     boolean updateByUserid(List<String>userid);
     List<UserQuit>lists2(String startDate);
+
+    String getUserQuitCount(String startDate,String endDate);
 }

+ 5 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userquit/service/impl/UserQuitServiceImpl.java

@@ -105,4 +105,9 @@ public class UserQuitServiceImpl extends ServiceImpl<UserQuitMapper, UserQuit> i
     public List<UserQuit> lists2(String startDate) {
         return userQuitMapper.lists2(startDate);
     }
+
+    @Override
+    public String getUserQuitCount(String startDate, String endDate) {
+        return userQuitMapper.getUserQuitCount(startDate,endDate);
+    }
 }

+ 50 - 8
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/vacation/controller/VacationController.java

@@ -2,21 +2,22 @@ package org.jeecg.modules.geke.vacation.controller;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
+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.geke.vacation.entity.Vacation;
 import org.jeecg.modules.geke.vacation.service.IVacationService;
-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;
@@ -29,6 +30,7 @@ import org.jeecgframework.poi.excel.entity.ImportParams;
 import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
@@ -51,7 +53,8 @@ public class VacationController extends JeecgController<Vacation, IVacationServi
 	@Autowired
 	private IVacationService vacationService;
 
-
+	 @Value("${jeecg.path.upload}")
+	 private String upLoadPath;
 	 /***
 	  * 我的假期
 	  */
@@ -81,8 +84,21 @@ public class VacationController extends JeecgController<Vacation, IVacationServi
 								   HttpServletRequest req) {
 		QueryWrapper<Vacation> queryWrapper = QueryGenerator.initQueryWrapper(vacation, req.getParameterMap());
 		Page<Vacation> page = new Page<Vacation>(pageNo, pageSize);
-		IPage<Vacation> pageList = vacationService.page(page, queryWrapper);
-		return Result.OK(pageList);
+		List<OrderItem>orderItems=new ArrayList<>();
+		if (queryWrapper.getExpression().getOrderBy()!=null&&queryWrapper.getExpression().getOrderBy().size()>0){
+			String[] s = queryWrapper.getExpression().getOrderBy().get(0).getSqlSegment().split(" ");
+			OrderItem orderItem=new OrderItem();
+			orderItem.setColumn(s[0]);
+			orderItem.setAsc(true);
+			if (s[1].equals("DESC")){
+				orderItem.setAsc(false);
+			}
+			orderItems.add(orderItem);
+		}
+		page.setOrders(orderItems);
+		/*IPage<Vacation> pageList = vacationService.page(page, queryWrapper);*/
+		IPage<Vacation> lists = vacationService.lists(page, vacation);
+		return Result.OK(lists);
 	}
 	
 	/**
@@ -163,7 +179,33 @@ public class VacationController extends JeecgController<Vacation, IVacationServi
    */
   @RequestMapping(value = "/exportXls")
   public ModelAndView exportXls(HttpServletRequest request, Vacation vacation) {
-      return super.exportXls(request, vacation, Vacation.class, "假期表");
+	  QueryWrapper<Vacation> queryWrapper = QueryGenerator.initQueryWrapper(vacation, request.getParameterMap());
+	  Page<Vacation> page = new Page<Vacation>(1, 10000);
+	  List<OrderItem>orderItems=new ArrayList<>();
+	  if (queryWrapper.getExpression().getOrderBy()!=null&&queryWrapper.getExpression().getOrderBy().size()>0){
+		  String[] s = queryWrapper.getExpression().getOrderBy().get(0).getSqlSegment().split(" ");
+		  OrderItem orderItem=new OrderItem();
+		  orderItem.setColumn(s[0]);
+		  orderItem.setAsc(true);
+		  if (s[1].equals("DESC")){
+			  orderItem.setAsc(false);
+		  }
+		  orderItems.add(orderItem);
+	  }
+	  page.setOrders(orderItems);
+	  /*IPage<Vacation> pageList = vacationService.page(page, queryWrapper);*/
+	  IPage<Vacation> lists = vacationService.lists(page, vacation);
+	  LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+	  ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+	  mv.addObject(NormalExcelConstants.FILE_NAME, "请假息列表"); //此处设置的filename无效 ,前端会重更新设置一下
+	  mv.addObject(NormalExcelConstants.CLASS, Vacation.class);
+	  //update-begin--Author:liusq  Date:20210126 for:图片导出报错,ImageBasePath未设置--------------------
+	  ExportParams  exportParams=new ExportParams("请假息列表", "导出人:" + sysUser.getRealname(), "请假息列表");
+	  exportParams.setImageBasePath(upLoadPath);
+	  //update-end--Author:liusq  Date:20210126 for:图片导出报错,ImageBasePath未设置----------------------
+	  mv.addObject(NormalExcelConstants.PARAMS,exportParams);
+	  mv.addObject(NormalExcelConstants.DATA_LIST, lists.getRecords());
+      return mv;
   }
 
   /**

+ 27 - 6
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/vacation/entity/Vacation.java

@@ -33,16 +33,34 @@ public class Vacation {
     @ApiModelProperty(value = "主键")
 	private java.lang.String id;
 	/**表头id*/
-	@Excel(name = "表头id", width = 15)
+
     @ApiModelProperty(value = "表头id")
 	private java.lang.String headerId;
+	@Excel(name = "工号", width = 15)
+	@ApiModelProperty(value = "工号")
+	private java.lang.String workNo;
+	@Excel(name = "姓名", width = 15)
+	@ApiModelProperty(value = "姓名")
+	private java.lang.String realname;
+
+	@Excel(name = "一级部门", width = 15)
+	@ApiModelProperty(value = "一级部门")
+	private java.lang.String deptname;
+
+	@Excel(name = "二级部门", width = 15)
+	@ApiModelProperty(value = "二级部门")
+	private java.lang.String deptname2;
+
+
 	/**假期类型*/
 	@Excel(name = "假期类型", width = 15)
     @ApiModelProperty(value = "假期类型")
 	private java.lang.String holidayType;
+
+
 	/**请假天数*/
-	@Excel(name = "请假天数", width = 15)
-    @ApiModelProperty(value = "请假天数")
+	@Excel(name = "请假时长", width = 15)
+    @ApiModelProperty(value = "请假时长")
 	private java.lang.String holidayCount;
 	/**开始时间*/
 	@Excel(name = "开始时间", width = 15, format = "yyyy-MM-dd")
@@ -57,20 +75,21 @@ public class Vacation {
     @ApiModelProperty(value = "结束时间")
 	private java.util.Date endDate;
 	/**审批人*/
-	@Excel(name = "审批人", width = 15)
+
     @ApiModelProperty(value = "审批人")
 	private java.lang.String userId;
 	/**审批时间*/
-	@Excel(name = "审批时间", width = 15, format = "yyyy-MM-dd")
+
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern="yyyy-MM-dd")
     @ApiModelProperty(value = "审批时间")
 	private java.util.Date userDate;
 	/**审批状态*/
-	@Excel(name = "审批状态", width = 15)
+
     @ApiModelProperty(value = "审批状态")
 	private java.lang.String state;
 	/**事由*/
+	@Excel(name = "请假事由", width = 15)
 	private  String demo;
 
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy")
@@ -102,6 +121,8 @@ public class Vacation {
 	/**已调休时间**/
 	private  String leavesDate;
 
+	private  String deptCode;
+
 	public Vacation(){
 
 	}

+ 4 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/vacation/mapper/VacationMapper.java

@@ -4,6 +4,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.geke.vacation.entity.Vacation;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -44,4 +45,7 @@ public interface VacationMapper extends BaseMapper<Vacation> {
 
     @DS("multi-datasource1")
     Map<String,Object> U8Vacation(@Param("code")String code, @Param("date")String date);
+
+    List<Vacation>lists(Page<Vacation> page, @Param("vacation")Vacation vacation, @Param("depts") List<String> depts, @Param("types")List<String>types,
+                        @Param("startDate")String startDate,@Param("endDate")String endDate);
 }

+ 28 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/vacation/mapper/xml/VacationMapper.xml

@@ -113,4 +113,32 @@
     <select id="getMoth" resultType="java.lang.String">
         select item_value from sys_dict_item where id='1506432937646657538'
     </select>
+    <select id="lists" resultType="org.jeecg.modules.geke.vacation.entity.Vacation">
+        select a.*,b.realname,b.work_no,d.org_code as 'deptCode' from geke_vacation_body a
+        left join sys_user b on a.user_id=b.id
+        left join sys_user_depart c on b.id=c.user_id
+        left join sys_depart d on c.dep_id=d.id
+        where 1=1
+        <if test="vacation.realname!=null and ''!=vacation.realname">
+            and b.realname like concat(concat('%',#{vacation.realname}),'%')
+        </if>
+        <if test="depts!=null and depts.size()>0">
+            and d.id in
+            <foreach collection="depts" index="index" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        <if test="types!=null and types.size()>0">
+            and a.holiday_Type in
+            <foreach collection="types" index="index" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        <if test="startDate!=null and ''!=startDate">
+            and date_format(a.start_date,'%Y-%m-%d')>=date_format(#{startDate},'%Y-%m-%d')
+        </if>
+        <if test="endDate!=null and ''!=endDate">
+            and date_format(a.end_date,'%Y-%m-%d')&lt;=date_format(#{endDate},'%Y-%m-%d')
+        </if>
+    </select>
 </mapper>

+ 5 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/vacation/service/IVacationService.java

@@ -1,5 +1,7 @@
 package org.jeecg.modules.geke.vacation.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.geke.vacation.entity.Vacation;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -21,4 +23,7 @@ public interface IVacationService extends IService<Vacation> {
 
     public  Boolean saveVacationHead(String id,String name,String userid,
             String yearDate,String avDate,String weixinId);
+
+    IPage<Vacation> lists(Page<Vacation> page, Vacation vacation);
+
 }

+ 47 - 4
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/vacation/service/impl/VacationServiceImpl.java

@@ -1,5 +1,9 @@
 package org.jeecg.modules.geke.vacation.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.geke.makeUpCard.mapper.MakeUpCardMapper;
 import org.jeecg.modules.geke.vacation.entity.Vacation;
 import org.jeecg.modules.geke.vacation.mapper.VacationMapper;
 import org.jeecg.modules.geke.vacation.service.IVacationService;
@@ -8,10 +12,7 @@ import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * @Description: 假期表
@@ -24,6 +25,8 @@ public class VacationServiceImpl extends ServiceImpl<VacationMapper, Vacation> i
     @Autowired
     private  VacationMapper vacationMapper;
 
+    @Autowired
+    private MakeUpCardMapper makeUpCardMapper;
 
     @Override
     public Map<String,Object> queryList(String userid) {
@@ -58,6 +61,46 @@ public class VacationServiceImpl extends ServiceImpl<VacationMapper, Vacation> i
 
     }
 
+    @Override
+    public IPage<Vacation> lists(Page<Vacation> page, Vacation vacation) {
+        List<String> subDepIdsByDepId=null;
+        List<String> types=null;
+        String startDate=null;
+        String endDate=null;
+        if (vacation.getDeptname()!=null){
+            subDepIdsByDepId= makeUpCardMapper.getSubDepIdsByDepId(vacation.getDeptname());
+        }if (vacation.getHolidayType()!=null){
+            types=Arrays.asList(vacation.getHolidayType().split(","));
+        }if (vacation.getStartDate()!=null){
+            startDate= DateUtils.formatDate(vacation.getStartDate());
+        }if (vacation.getEndDate()!=null){
+            endDate= DateUtils.formatDate(vacation.getEndDate());
+        }
+        List<Vacation> lists = vacationMapper.lists(page, vacation, subDepIdsByDepId, types,startDate,endDate);
+        if (lists!=null&&lists.size()>0){
+            lists.forEach(str->{
+                String codet=str.getDeptCode();
+                List<String>codes=new ArrayList<>();
+                if (codet!=null&&codet.length()>1) {
+                    for (int i = 0; i < codet.length(); i = i + 2) {
+                        codes.add(codet.substring(0, i + 2));
+                    }
+                    List<Map<String, Object>> sysDeparts = makeUpCardMapper.listDeptTop(codes);
+                    if (sysDeparts != null && sysDeparts.size() > 0) {
+                        sysDeparts.forEach(st -> {
+                            if (st.get("org_type").equals("1") || st.get("org_type").equals(1)) {
+                                str.setDeptname(st.get("depart_name").toString());
+                            } else if (st.get("org_type").equals("2") || st.get("org_type").equals(2)) {
+                                str.setDeptname2(st.get("depart_name").toString());
+                            }
+                        });
+                    }
+                }
+            });
+        }
+        return page.setRecords(lists);
+    }
+
 
     public String days(Date date){
         if (date.getHours() >= 0 && date.getHours() < 12) {

+ 2 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/WeixinUserImpl.java

@@ -335,8 +335,8 @@ public class WeixinUserImpl implements IWeixinUserService{
             String createDeptUrl = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token="+token+"&code="+code+"";
             String res = UrlData.toAuth(createDeptUrl);
             mapTypes = JSON.parseObject(res);
-            System.out.println("================"+res+"==================");
-            System.out.println("================"+mapTypes+"==================");
+//            System.out.println("================"+res+"==================");
+//            System.out.println("================"+mapTypes+"==================");
             errcode = mapTypes.get("errcode").toString();
             map.put("code",errcode);
             if (mapTypes.get("UserId").toString()!=null&&!mapTypes.get("UserId").toString().equals("")){

+ 49 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/workOvertime/controller/workOvertimeController.java

@@ -9,6 +9,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.query.QueryGenerator;
@@ -20,6 +21,7 @@ import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.geke.makeUpCard.entity.MakeUpCard;
 import org.jeecg.modules.system.entity.SysUser;
 import org.jeecg.modules.system.mapper.SysDepartMapper;
+import org.jeecg.modules.system.service.ISysDepartService;
 import org.jeecg.modules.workOvertime.entity.workOvertime;
 import org.jeecg.modules.workOvertime.service.IworkOvertimeService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -60,6 +62,9 @@ public class workOvertimeController extends JeecgController<workOvertime, IworkO
 	@Autowired
 	private SysDepartMapper departMapper;
 
+	@Autowired
+	private ISysDepartService sysDepartService;
+
 	 @Value("${jeecg.path.upload}")
 	 private String upLoadPath;
 	/**
@@ -93,18 +98,39 @@ public class workOvertimeController extends JeecgController<workOvertime, IworkO
 									@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 									HttpServletRequest req) {
 		 Page<workOvertime> page = new Page<workOvertime>(pageNo, pageSize);
+		 QueryWrapper<workOvertime> queryWrapper = QueryGenerator.initQueryWrapper(workOvertime, req.getParameterMap());
+		 List<OrderItem>orderItems=new ArrayList<>();
+		 if (queryWrapper.getExpression().getOrderBy()!=null&&queryWrapper.getExpression().getOrderBy().size()>0){
+			 String[] s = queryWrapper.getExpression().getOrderBy().get(0).getSqlSegment().split(" ");
+			 OrderItem orderItem=new OrderItem();
+			 orderItem.setColumn(s[0]);
+			 orderItem.setAsc(true);
+			 if (s[1].equals("DESC")){
+				 orderItem.setAsc(false);
+			 }if (s[0].equals("create_time")){
+				 orderItem.setColumn("commit_Date");
+			 }
+			 orderItems.add(orderItem);
+		 }
+		 page.setOrders(orderItems);
 		 String startDate="";
 		 String endDate="";
+		 List<String> subDepIdsByDepId=null;
+		 List<String> types=null;
 		 if (workOvertime.getBeginDate()!=null){
 		 	startDate=DateUtils.formatDate(workOvertime.getBeginDate());
 		 } if (workOvertime.getEndDate()!=null){
 		 	endDate=DateUtils.formatDate(workOvertime.getEndDate());
 		 }if(oConvertUtils.isNotEmpty(workOvertime.getPerson())){
 			 workOvertime.setPerson(workOvertime.getPerson().trim());
+		 }  if (oConvertUtils.isNotEmpty(workOvertime.getDept())){
+			 subDepIdsByDepId = sysDepartService.getMySubDepIdsByDepId(workOvertime.getDept());
+		 }if (oConvertUtils.isNotEmpty(workOvertime.getDemo())){
+		 	types=Arrays.asList(workOvertime.getDemo().split(","));
 		 }
 
 
-		 IPage<workOvertime> pageList = workOvertimeService.getWork(page,workOvertime.getPerson(),workOvertime.getCode(),startDate ,endDate);
+		 IPage<workOvertime> pageList = workOvertimeService.getWork(page,workOvertime.getPerson(),workOvertime.getCode(),startDate ,endDate,subDepIdsByDepId,types);
 		 return Result.OK(pageList);
 	 }
 	/**
@@ -187,13 +213,34 @@ public class workOvertimeController extends JeecgController<workOvertime, IworkO
   public ModelAndView exportXls(HttpServletRequest request, workOvertime workOvertime) {
 	  String startDate="";
 	  String endDate="";
+	  List<String> subDepIdsByDepId=null;
+	  List<String> types=null;
 	  if (workOvertime.getBeginDate()!=null){
 		  startDate=DateUtils.formatDate(workOvertime.getBeginDate());
 	  } if (workOvertime.getEndDate()!=null){
 		  endDate=DateUtils.formatDate(workOvertime.getEndDate());
+	  } if (oConvertUtils.isNotEmpty(workOvertime.getDept())){
+		  subDepIdsByDepId = sysDepartService.getMySubDepIdsByDepId(workOvertime.getDept());
+	  }if (oConvertUtils.isNotEmpty(workOvertime.getDemo())){
+		  types=Arrays.asList(workOvertime.getDemo().split(","));
 	  }
 	  Page<workOvertime> page = new Page<workOvertime>(1, 10000);
-	  IPage<workOvertime> pageList = workOvertimeService.getWork(page,workOvertime.getPerson(),workOvertime.getCode(),startDate ,endDate);
+	  QueryWrapper<workOvertime> queryWrapper = QueryGenerator.initQueryWrapper(workOvertime, request.getParameterMap());
+	  List<OrderItem>orderItems=new ArrayList<>();
+	  if (queryWrapper.getExpression().getOrderBy()!=null&&queryWrapper.getExpression().getOrderBy().size()>0){
+		  String[] s = queryWrapper.getExpression().getOrderBy().get(0).getSqlSegment().split(" ");
+		  OrderItem orderItem=new OrderItem();
+		  orderItem.setColumn(s[0]);
+		  orderItem.setAsc(true);
+		  if (s[1].equals("DESC")){
+			  orderItem.setAsc(false);
+		  }if (s[0].equals("create_time")){
+			  orderItem.setColumn("commit_Date");
+		  }
+		  orderItems.add(orderItem);
+	  }
+	  page.setOrders(orderItems);
+	  IPage<workOvertime> pageList = workOvertimeService.getWork(page,workOvertime.getPerson(),workOvertime.getCode(),startDate ,endDate,subDepIdsByDepId,types);
 	  LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
 	  ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
 	  mv.addObject(NormalExcelConstants.FILE_NAME, "加班信息列表"); //此处设置的filename无效 ,前端会重更新设置一下

+ 7 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/workOvertime/entity/workOvertime.java

@@ -32,6 +32,9 @@ public class workOvertime {
 	@TableId(type = IdType.ASSIGN_ID)
     @ApiModelProperty(value = "主键id加班信息表")
 	private String id;
+	@Excel(name = "工号", width = 15)
+	@ApiModelProperty(value = "工号")
+	private String workNo;
 	/**加班人员*/
 	@Excel(name = "加班人员", width = 15)
     @ApiModelProperty(value = "加班人员")
@@ -46,10 +49,10 @@ public class workOvertime {
 	private transient  String deptName2;
 
 	/**备用虚拟字段**/
-	@Excel(name = "三级部门", width = 15)
+	//@Excel(name = "三级部门", width = 15)
 	private transient  String deptName3;
 	/**申请人部门*/
-	@Excel(name = "末级部门", width = 15)
+	//@Excel(name = "末级部门", width = 15)
     @ApiModelProperty(value = "申请人部门")
 	private String dept;
 	/**加班事由*/
@@ -74,13 +77,13 @@ public class workOvertime {
 	private String duration;
 
 	/**提交时间*/
-	@Excel(name = "提交时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+	//@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 commitDate;
 	/**审批编号*/
-	@Excel(name = "审批编号", width = 15)
+	//@Excel(name = "审批编号", width = 15)
 	@ApiModelProperty(value = "审批编号")
 	private String code;
 	/**创建时间*/

+ 2 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/workOvertime/mapper/workOvertimeMapper.java

@@ -18,7 +18,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 public interface workOvertimeMapper extends BaseMapper<workOvertime> {
     String getOne(@Param("userid")String userid,@Param("date") String date);
 
-    List<workOvertime>getworkList(Page<workOvertime> page,@Param("name")String name,@Param("code")String code,@Param("startDate")String startDate,@Param("endDate")String endDate);
+    List<workOvertime>getworkList(Page<workOvertime> page,@Param("name")String name,@Param("code")String code,@Param("startDate")String startDate,@Param("endDate")String endDate,
+    @Param("depts")List<String>depts,@Param("types")List<String>types);
 
     /**
      * 根据时间和人员编码获取加班信息

+ 14 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/workOvertime/mapper/xml/workOvertimeMapper.xml

@@ -13,7 +13,7 @@
     </select>
     <select id="getworkList" resultType="org.jeecg.modules.workOvertime.entity.workOvertime">
         select a.code,a.demo,a.begin_date,a.end_date,a.commit_date,a.duration,b.realname as 'person',c.depart_name as 'dept'
-        , c.org_code as 'deptCode'
+        , c.org_code as 'deptCode',b.work_no
         from bd_work_overtime a left  join sys_user b on a.person=b.id
         left join sys_user_depart d on b.id=d.user_id
         left join sys_depart c on d.dep_id=c.id
@@ -30,7 +30,19 @@
         <if test="endDate!=null and ''!=endDate">
             and date_format(a.end_date,'%Y-%m-%d')&lt;=#{endDate}
         </if>
-order by a.commit_date desc
+        <if test="depts!=null and depts.size()>0">
+            and c.id in
+            <foreach collection="depts" index="index" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        <if test="types!=null and types.size()>0">
+            and a.demo in
+            <foreach collection="types" index="index" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+
     </select>
 
     <update id="delAttendanceByUser">

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/workOvertime/service/IworkOvertimeService.java

@@ -18,7 +18,7 @@ import java.util.Map;
 public interface IworkOvertimeService extends IService<workOvertime> {
     Boolean workSave(workOvertime work);
 
-    IPage<workOvertime> getWork(Page<workOvertime> page, String name, String code,String startDate,String endDate);
+    IPage<workOvertime> getWork(Page<workOvertime> page, String name, String code,String startDate,String endDate,List<String>depts,List<String>types);
 
     public List<workOvertime> getJiaBan(String person, String viewDate);
 }

+ 2 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/workOvertime/service/impl/workOvertimeServiceImpl.java

@@ -49,8 +49,8 @@ public class workOvertimeServiceImpl extends ServiceImpl<workOvertimeMapper, wor
     }
 
     @Override
-    public IPage<workOvertime> getWork(Page<workOvertime> page, String name, String code,String startDate,String endDate) {
-        List<workOvertime> workOvertimes = works.getworkList(page, name, code, startDate, endDate);
+    public IPage<workOvertime> getWork(Page<workOvertime> page, String name, String code,String startDate,String endDate,List<String>depts,List<String>types) {
+        List<workOvertime> workOvertimes = works.getworkList(page, name, code, startDate, endDate,depts,types);
         if (workOvertimes!=null){
             workOvertimes.forEach(str->{
                 if (str.getDeptCode()!=null&&!"".equals(str.getDeptCode())) {