LiGuang %!s(int64=3) %!d(string=hai) anos
pai
achega
0c0404e3be
Modificáronse 25 ficheiros con 416 adicións e 42 borrados
  1. 1 1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/util/JwtUtil.java
  2. 1 1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroRealm.java
  3. 22 9
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/shift/controller/ShiftController.java
  4. 3 6
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/shift/entity/Shift.java
  5. 1 0
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/shift/mapper/ShiftMapper.java
  6. 6 0
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/shift/mapper/xml/ShiftMapper.xml
  7. 2 1
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/shift/service/IShiftService.java
  8. 6 0
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/shift/service/impl/ShiftServiceImpl.java
  9. 23 4
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/statutoryleave/controller/StatutoryLeaveController.java
  10. 4 5
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/statutoryleave/entity/StatutoryLeave.java
  11. 2 0
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/statutoryleave/mapper/StatutoryLeaveMapper.java
  12. 9 0
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/statutoryleave/mapper/xml/StatutoryLeaveMapper.xml
  13. 5 0
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/statutoryleave/service/IStatutoryLeaveService.java
  14. 18 0
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/statutoryleave/service/impl/StatutoryLeaveServiceImpl.java
  15. 20 2
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userPrize/controller/UserPrizeController.java
  16. 6 5
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userPrize/entity/UserPrize.java
  17. 2 2
      jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userShift/mapper/xml/UserShiftMapper.xml
  18. 4 4
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/LoginController.java
  19. 83 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysUserController.java
  20. 1 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java
  21. 1 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml
  22. 1 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysUserService.java
  23. 6 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/IWeixinUserService.java
  24. 2 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
  25. 187 2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/WeixinUserImpl.java

+ 1 - 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/util/JwtUtil.java

@@ -28,7 +28,7 @@ import org.jeecg.common.util.oConvertUtils;
 public class JwtUtil {
 
 	// Token过期时间30分钟(用户登录过期时间是此时间的两倍,以token在reids缓存时间为准)
-	public static final long EXPIRE_TIME = 30 * 60 * 1000;
+	public static final long EXPIRE_TIME = 60 * 60 * 1000;
 
 	/**
 	 * 校验token是否正确

+ 1 - 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroRealm.java

@@ -151,7 +151,7 @@ public class ShiroRealm extends AuthorizingRealm {
                 String newAuthorization = JwtUtil.sign(userName, passWord);
                 // 设置超时时间
                 redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, newAuthorization);
-                ///redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME *2 / 1000);
+                redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME *2 / 1000);
                 log.debug("——————————用户在线操作,更新token保证不掉线—————————jwtTokenRefresh——————— "+ token);
             }
             //update-begin--Author:scott  Date:20191005  for:解决每次请求,都重写redis中 token缓存问题

+ 22 - 9
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/shift/controller/ShiftController.java

@@ -8,10 +8,14 @@ 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.geke.makeUpCard.entity.MakeUpCard;
 import org.jeecg.modules.geke.shift.entity.Shift;
 import org.jeecg.modules.geke.shift.service.IShiftService;
 import java.util.Date;
@@ -27,6 +31,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;
@@ -48,7 +53,8 @@ import io.swagger.annotations.ApiOperation;
 public class ShiftController extends JeecgController<Shift, IShiftService> {
 	@Autowired
 	private IShiftService shiftService;
-	
+	 @Value("${jeecg.path.upload}")
+	 private String upLoadPath;
 	/**
 	 * 分页列表查询
 	 *
@@ -67,8 +73,8 @@ public class ShiftController extends JeecgController<Shift, IShiftService> {
 								   HttpServletRequest req) {
 		QueryWrapper<Shift> queryWrapper = QueryGenerator.initQueryWrapper(shift, req.getParameterMap());
 		Page<Shift> page = new Page<Shift>(pageNo, pageSize);
-		IPage<Shift> pageList = shiftService.page(page, queryWrapper);
-		return Result.OK(pageList);
+		Page<Shift> lists = shiftService.lists(page, shift);
+		return Result.OK(lists);
 	}
 
 	 @AutoLog(value = "班次档案-分页列表查询")
@@ -80,11 +86,6 @@ public class ShiftController extends JeecgController<Shift, IShiftService> {
 	 }
 
 
-	public Result<?> addUserShift(String shift,String userids){
-
-
-	return 	Result.OK("添加成功!");
-	}
 	/**
 	 * 添加
 	 *
@@ -163,7 +164,19 @@ public class ShiftController extends JeecgController<Shift, IShiftService> {
    */
   @RequestMapping(value = "/exportXls")
   public ModelAndView exportXls(HttpServletRequest request, Shift shift) {
-      return super.exportXls(request, shift, Shift.class, "班次档案");
+	  Page<Shift> page = new Page<Shift>(1, 10000);
+	  Page<Shift> lists = shiftService.lists(page, shift);
+	  LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+	  ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+	  mv.addObject(NormalExcelConstants.FILE_NAME, "班次档案"); //此处设置的filename无效 ,前端会重更新设置一下
+	  mv.addObject(NormalExcelConstants.CLASS, Shift.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;
   }
 
   /**

+ 3 - 6
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/shift/entity/Shift.java

@@ -37,25 +37,24 @@ public class Shift {
     @ApiModelProperty(value = "名称")
 	private java.lang.String name;
 	/**上班时间*/
-	@Excel(name = "上班时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+	@Excel(name = "上班时间", width = 20, format = "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 java.util.Date startDate;
 	/**下班时间*/
-	@Excel(name = "下班时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+	@Excel(name = "下班时间", width = 20, format = "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 java.util.Date endDate;
 	/**创建时间*/
-	@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+	@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd")
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "创建时间")
 	private java.util.Date createTime;
 	/**修改时间*/
-	@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 = "修改时间")
@@ -65,11 +64,9 @@ public class Shift {
     @ApiModelProperty(value = "创建人")
 	private java.lang.String createBy;
 	/**修改人*/
-	@Excel(name = "修改人", width = 15)
     @ApiModelProperty(value = "修改人")
 	private java.lang.String updateBy;
 	/**删除标记*/
-	@Excel(name = "删除标记", width = 15)
     @ApiModelProperty(value = "删除标记")
 	private java.lang.String delFlag;
 }

+ 1 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/shift/mapper/ShiftMapper.java

@@ -19,4 +19,5 @@ public interface ShiftMapper extends BaseMapper<Shift> {
     List<Map<String,Object>>listUserShift(@Param("userid") String userid,@Param("date") String date);
     List<Map<String,Object>>query(Page<Map<String,Object>> page);
     List<Map<String,Object>>querys();
+    List<Shift>lists(Page<Shift>page,@Param("shift")Shift shift);
 }

+ 6 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/shift/mapper/xml/ShiftMapper.xml

@@ -20,4 +20,10 @@
         select id,name,date_format(start_date,'%H:%i:%s') as 'startDate', date_format(end_date,'%H:%i:%s') as 'endDate' from geke_shift
 
     </select>
+    <select id="lists" resultType="org.jeecg.modules.geke.shift.entity.Shift">
+        select *from geke_shift where 1=1
+        <if test="shift.name!=null and ''!=shift.name">
+            and name like concat(concat('%',#{shift.name}),'%')
+        </if>
+    </select>
 </mapper>

+ 2 - 1
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/shift/service/IShiftService.java

@@ -1,5 +1,6 @@
 package org.jeecg.modules.geke.shift.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.geke.shift.entity.Shift;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -15,7 +16,7 @@ import java.util.Map;
  */
 public interface IShiftService extends IService<Shift> {
 
-
+    Page<Shift>lists(Page<Shift> page,Shift shift);
     List<Map<String,Object>> listUserShift(String userid, String date);
     List<Map<String,Object>>queryst();
 

+ 6 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/shift/service/impl/ShiftServiceImpl.java

@@ -1,5 +1,6 @@
 package org.jeecg.modules.geke.shift.service.impl;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.jeecg.modules.geke.shift.entity.Shift;
 import org.jeecg.modules.geke.shift.mapper.ShiftMapper;
 import org.jeecg.modules.geke.shift.service.IShiftService;
@@ -22,6 +23,11 @@ public class ShiftServiceImpl extends ServiceImpl<ShiftMapper, Shift> implements
     @Autowired
     private  ShiftMapper shiftMapper;
 
+    @Override
+    public Page<Shift> lists(Page<Shift> page, Shift shift) {
+        return page.setRecords(shiftMapper.lists(page,shift));
+    }
+
     @Override
     public List<Map<String, Object>> listUserShift(String userid, String date) {
         return shiftMapper.listUserShift(userid,date);

+ 23 - 4
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/statutoryleave/controller/StatutoryLeaveController.java

@@ -8,10 +8,14 @@ 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.geke.makeUpCard.entity.MakeUpCard;
 import org.jeecg.modules.geke.statutoryleave.entity.StatutoryLeave;
 import org.jeecg.modules.geke.statutoryleave.service.IStatutoryLeaveService;
 import java.util.Date;
@@ -27,6 +31,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;
@@ -48,7 +53,9 @@ import io.swagger.annotations.ApiOperation;
 public class StatutoryLeaveController extends JeecgController<StatutoryLeave, IStatutoryLeaveService> {
 	@Autowired
 	private IStatutoryLeaveService statutoryLeaveService;
-	
+
+	 @Value("${jeecg.path.upload}")
+	 private String upLoadPath;
 	/**
 	 * 分页列表查询
 	 *
@@ -67,8 +74,8 @@ public class StatutoryLeaveController extends JeecgController<StatutoryLeave, IS
 								   HttpServletRequest req) {
 		QueryWrapper<StatutoryLeave> queryWrapper = QueryGenerator.initQueryWrapper(statutoryLeave, req.getParameterMap());
 		Page<StatutoryLeave> page = new Page<StatutoryLeave>(pageNo, pageSize);
-		IPage<StatutoryLeave> pageList = statutoryLeaveService.page(page, queryWrapper);
-		return Result.OK(pageList);
+		Page<StatutoryLeave> lists = statutoryLeaveService.lists(page, statutoryLeave);
+		return Result.OK(lists);
 	}
 	
 	/**
@@ -149,7 +156,19 @@ public class StatutoryLeaveController extends JeecgController<StatutoryLeave, IS
    */
   @RequestMapping(value = "/exportXls")
   public ModelAndView exportXls(HttpServletRequest request, StatutoryLeave statutoryLeave) {
-      return super.exportXls(request, statutoryLeave, StatutoryLeave.class, "法定假期");
+	  Page<StatutoryLeave> page = new Page<StatutoryLeave>(1, 10000);
+	  Page<StatutoryLeave> lists = statutoryLeaveService.lists(page, statutoryLeave);
+	  LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+	  ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+	  mv.addObject(NormalExcelConstants.FILE_NAME, "假期信息列表"); //此处设置的filename无效 ,前端会重更新设置一下
+	  mv.addObject(NormalExcelConstants.CLASS, StatutoryLeave.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;
   }
 
   /**

+ 4 - 5
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/statutoryleave/entity/StatutoryLeave.java

@@ -36,14 +36,16 @@ public class StatutoryLeave {
 	@Excel(name = "假期名称", width = 15)
     @ApiModelProperty(value = "假期名称")
 	private java.lang.String name;
+	@Excel(name = "类型", width = 15)
+	private java.lang.String type;
 	/**假期开始时间*/
-	@Excel(name = "假期开始时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+	@Excel(name = "假期开始时间", width = 20, format = "yyyy-MM-dd")
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "假期开始时间")
 	private java.util.Date startDate;
 	/**假期结束时间*/
-	@Excel(name = "假期结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+	@Excel(name = "假期结束时间", width = 20, format = "yyyy-MM-dd")
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "假期结束时间")
@@ -53,14 +55,11 @@ public class StatutoryLeave {
     @ApiModelProperty(value = "日薪资倍数")
 	private java.lang.String sum;
 
-	private java.lang.String type;
 	/**创建人*/
-	@Excel(name = "创建人", width = 15)
 	@ApiModelProperty(value = "创建人")
 	private java.lang.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 = "创建时间")

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

@@ -2,6 +2,7 @@ package org.jeecg.modules.geke.statutoryleave.mapper;
 
 import java.util.List;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.geke.statutoryleave.entity.StatutoryLeave;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -15,4 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 public interface StatutoryLeaveMapper extends BaseMapper<StatutoryLeave> {
     StatutoryLeave getOne(@Param("date")String date);
 
+    List<StatutoryLeave>lists(Page<StatutoryLeave> page, @Param("st")StatutoryLeave st);
 }

+ 9 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/statutoryleave/mapper/xml/StatutoryLeaveMapper.xml

@@ -8,4 +8,13 @@
             and date_format(#{date},'%Y-%m-%d')  BETWEEN date_format(start_date,'%Y-%m-%d') AND date_format(end_date,'%Y-%m-%d')
         </if>
     </select>
+    <select id="lists" resultType="org.jeecg.modules.geke.statutoryleave.entity.StatutoryLeave">
+        select *from geke_statutory_leave where 1=1
+        <if test="st.name!=null and ''!=st.name">
+        and name like concat(concat('%',#{st.name}),'%')
+        </if>
+        <if test="st.sum!=null and ''!=st.sum">
+            and sum=#{st.sum}
+        </if>
+    </select>
 </mapper>

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

@@ -1,9 +1,12 @@
 package org.jeecg.modules.geke.statutoryleave.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.geke.statutoryleave.entity.StatutoryLeave;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * @Description: 法定假期
  * @Author: jeecg-boot
@@ -12,4 +15,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IStatutoryLeaveService extends IService<StatutoryLeave> {
     StatutoryLeave getOne(String date);
+
+    Page<StatutoryLeave> lists(Page<StatutoryLeave> page,StatutoryLeave st);
 }

+ 18 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/statutoryleave/service/impl/StatutoryLeaveServiceImpl.java

@@ -1,5 +1,6 @@
 package org.jeecg.modules.geke.statutoryleave.service.impl;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.jeecg.modules.geke.statutoryleave.entity.StatutoryLeave;
 import org.jeecg.modules.geke.statutoryleave.mapper.StatutoryLeaveMapper;
 import org.jeecg.modules.geke.statutoryleave.service.IStatutoryLeaveService;
@@ -8,6 +9,8 @@ import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import java.util.List;
+
 /**
  * @Description: 法定假期
  * @Author: jeecg-boot
@@ -24,4 +27,19 @@ public class StatutoryLeaveServiceImpl extends ServiceImpl<StatutoryLeaveMapper,
     public StatutoryLeave getOne(String date) {
         return statutoryLeaveMapper.getOne(date);
     }
+
+    @Override
+    public Page<StatutoryLeave> lists(Page<StatutoryLeave> page, StatutoryLeave st) {
+        List<StatutoryLeave> lists = statutoryLeaveMapper.lists(page, st);
+        if (lists!=null&&lists.size()>0){
+            lists.forEach(str->{
+                if (str.getType().equals("1")){
+                    str.setType("班");
+                }else {
+                    str.setType("休");
+                }
+            });
+        }
+        return page.setRecords(lists);
+    }
 }

+ 20 - 2
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userPrize/controller/UserPrizeController.java

@@ -8,9 +8,12 @@ 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.geke.makeUpCard.entity.MakeUpCard;
 import org.jeecg.modules.geke.userPrize.entity.UserPrize;
@@ -28,6 +31,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;
@@ -49,7 +53,9 @@ import io.swagger.annotations.ApiOperation;
 public class UserPrizeController extends JeecgController<UserPrize, IUserPrizeService> {
 	@Autowired
 	private IUserPrizeService userPrizeService;
-	
+
+	 @Value("${jeecg.path.upload}")
+	 private String upLoadPath;
 	/**
 	 * 分页列表查询
 	 *
@@ -150,7 +156,19 @@ public class UserPrizeController extends JeecgController<UserPrize, IUserPrizeSe
    */
   @RequestMapping(value = "/exportXls")
   public ModelAndView exportXls(HttpServletRequest request, UserPrize userPrize) {
-      return super.exportXls(request, userPrize, UserPrize.class, "员工奖惩");
+	  Page<UserPrize> page = new Page<UserPrize>(1, 10000);
+	  Page<UserPrize>lists = userPrizeService.lists(page, userPrize);
+	  LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+	  ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+	  mv.addObject(NormalExcelConstants.FILE_NAME, "奖惩信息列表"); //此处设置的filename无效 ,前端会重更新设置一下
+	  mv.addObject(NormalExcelConstants.CLASS, UserPrize.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;
   }
 
   /**

+ 6 - 5
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userPrize/entity/UserPrize.java

@@ -34,9 +34,10 @@ public class UserPrize {
     @ApiModelProperty(value = "id")
 	private java.lang.String id;
 	/**员工id*/
-	@Excel(name = "员工id", width = 15)
     @ApiModelProperty(value = "员工id")
 	private java.lang.String userId;
+	@Excel(name = "员工姓名", width = 15)
+	private  transient String realname;
 	/**部门id*/
 	/**用户所属组织**/
 	@Excel(name = "一级部门", width = 15)
@@ -62,9 +63,6 @@ public class UserPrize {
 	@Excel(name = "备注", width = 15)
     @ApiModelProperty(value = "备注")
 	private java.lang.String demo;
-	/**创建人*/
-    @ApiModelProperty(value = "创建人")
-	private java.lang.String createBy;
 	/**创建时间*/
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@@ -77,7 +75,10 @@ public class UserPrize {
     @ApiModelProperty(value = "日期")
 	private java.util.Date date;
 
-	private  transient String realname;
+	/**创建人*/
+	@Excel(name = "操作员", width = 15)
+	@ApiModelProperty(value = "创建人")
+	private java.lang.String createBy;
 
 	private  transient String orgCode;
 

+ 2 - 2
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userShift/mapper/xml/UserShiftMapper.xml

@@ -87,7 +87,7 @@ order by a.shift_date desc
     and b.realname  like concat(concat('%',#{realname}),'%')
 </if>
         <if test="dept!=null and ''!=dept">
-            and d.depart_name  like concat(concat('%',#{dept}),'%')
+            and d.id= #{dept}
         </if>
     </select>
     <delete id="deleteUserids">
@@ -146,7 +146,7 @@ order by a.shift_date desc
             </foreach>
         </if>
 <if test="deptname!=null and ''!=deptname">
-     and d.depart_name  like concat(concat('%',#{deptname}),'%')
+     and d.id=#{deptname}
 </if>
     </select>
     <select id="ShiftCount" resultType="java.util.Map">

+ 4 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/LoginController.java

@@ -88,7 +88,7 @@ public class LoginController {
 	public Result<JSONObject> login(@RequestBody SysLoginModel sysLoginModel) throws IOException {
 		Result<JSONObject> result = new Result<JSONObject>();
 		String username = sysLoginModel.getUsername();
-		System.out.println("=================="+username+"=================");
+//		System.out.println("=================="+username+"=================");
 		String password = sysLoginModel.getPassword();
 		//update-begin--Author:scott  Date:20190805 for:暂时注释掉密码加密逻辑,有点问题
 		//前端密码加密,后端进行密码解密
@@ -396,7 +396,7 @@ public class LoginController {
 		String token = JwtUtil.sign(username, syspassword);
 		// 设置token缓存有效时间
 		redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token);
-		//redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME*2 / 1000);
+		redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME*2 / 1000);
 
 		// 获取用户部门信息
 		JSONObject obj = new JSONObject();
@@ -516,14 +516,14 @@ public class LoginController {
 		String username = sysLoginModel.getUsername();
 //		System.out.println("============code= "+username+"=============");
 		String auts = weixinUserService.auts(username,"1");
-		System.out.println(auts);
+	//	System.out.println(auts);
 		SysUser sysUser=null;
 		if (auts!=null){
 			sysUser = sysUserService.getById(auts);
 		}
 //		String password = sysLoginModel.getPassword();
 //		//1. 校验用户是否有效
-		//SysUser sysUser = sysUserService.getUserByName(username);
+//		SysUser sysUser = sysUserService.getUserByName(username);
 		result = sysUserService.checkUserIsEffective(sysUser);
 		if(!result.isSuccess()) {
 			return result;

+ 83 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysUserController.java

@@ -43,6 +43,8 @@ import org.jeecg.modules.geke.userRule.service.IUserRuleService;
 import org.jeecg.modules.geke.userShift.entity.UserShift;
 import org.jeecg.modules.geke.userShift.entity.UserShiftVo;
 import org.jeecg.modules.geke.userShift.service.IUserShiftService;
+import org.jeecg.modules.geke.userchange.entity.UserChage;
+import org.jeecg.modules.geke.userchange.service.IUserChageService;
 import org.jeecg.modules.geke.vacation.entity.Vacation;
 import org.jeecg.modules.geke.vacation.mapper.VacationMapper;
 import org.jeecg.modules.geke.vacation.service.IVacationService;
@@ -58,6 +60,7 @@ import org.jeecg.modules.system.vo.CodeVo;
 import org.jeecg.modules.system.vo.SysDepartUsersVO;
 import org.jeecg.modules.system.vo.SysUserDepVo;
 import org.jeecg.modules.system.vo.SysUserRoleVO;
+import org.jeecg.modules.viewClockIn.service.IbdClockinMonthService;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -108,6 +111,9 @@ public class SysUserController {
     @Autowired
     private ISysDepartService sysDepartService;
 
+    @Autowired
+    private IbdClockinMonthService bdClockinMonthService;
+
 	@Autowired
 	private ISysUserRoleService sysUserRoleService;
 
@@ -148,6 +154,9 @@ public class SysUserController {
 	@Autowired
     private IAttendanceRuleService attendanceRuleService;
 
+	@Autowired
+    private IUserChageService userChageService;
+
     @Value("${jeecg.path.upload}")
     private String upLoadPath;
 
@@ -2007,6 +2016,13 @@ public class SysUserController {
     @GetMapping(value = "/queryMothByUsers")
     public Result<?> queryMothByUsers(HttpServletRequest req, UserShift userShift,String deptid,String usertid,String type) throws ParseException {
         List<Map<String, Object>> maps = userShiftService.mothUserShifts(DateUtils.formatDate(userShift.getShiftDate()), type, usertid);
+        boolean f=true;
+        if(!bdClockinMonthService.ifClose(DateUtils.formatDate(userShift.getShiftDate()))){
+            f=false;
+        }
+        for (Map map:maps){
+            map.put("isColse",f);
+        }
         return Result.OK(maps);
     }
 
@@ -2104,4 +2120,71 @@ public class SysUserController {
         list.forEach(System.out::println);
         System.out.println(code.length());
     }
+
+
+    /**
+     * 薪资数据导入
+     *
+     * @param request
+     * @param response
+     * @return
+     */
+    @RequestMapping(value = "/importExcels", method = RequestMethod.POST)
+    public Result<?> importExcels(HttpServletRequest request, HttpServletResponse response) {
+
+
+        return this.importExcelst(request,response);
+    }
+
+    /**
+     * 通过excel薪资导入
+     *
+     * @param request
+     * @param response
+     * @return
+     */
+    protected Result<?> importExcelst(HttpServletRequest request, HttpServletResponse response) {
+        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+            MultipartFile file = entity.getValue();// 获取上传文件对象
+            ImportParams params = new ImportParams();
+            params.setTitleRows(2);
+            params.setHeadRows(1);
+            params.setNeedSave(true);
+            try {
+                List<UserChage> list = ExcelImportUtil.importExcel(file.getInputStream(), UserChage.class, params);
+                //update-begin-author:taoyan date:20190528 for:批量插入数据
+                if (list!=null&&list.size()>0){
+                    List<SysUser>lst=new ArrayList<>();
+                    list.forEach(str->{
+                    str.setTime(new Date());
+                    SysUser sysUser=new SysUser();
+                    if (str.getUserId()!=null&&!str.getUserId().equals("")){
+                        sysUser.setId(str.getUserId());
+                    }if (str.getEndWages()!=null&&!str.getEndWages().equals("")){
+                        sysUser.setWagesOne(str.getEndWages());
+                    }
+                    lst.add(sysUser);
+                    });
+                    userChageService.saveBatch(list);
+                    sysUserService.updateBatchById(lst);
+                }
+                //400条 saveBatch消耗时间1592毫秒  循环插入消耗时间1947毫秒
+                //1200条  saveBatch消耗时间3687毫秒 循环插入消耗时间5212毫秒
+                //update-end-author:taoyan date:20190528 for:批量插入数据
+                return Result.ok("文件导入成功!数据行数:" + list.size());
+            } catch (Exception e) {
+                log.error(e.getMessage(), e);
+                return Result.error("文件导入失败:" + e.getMessage());
+            } finally {
+                try {
+                    file.getInputStream().close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return Result.error("文件导入失败!");
+    }
 }

+ 1 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java

@@ -226,4 +226,5 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
 	List<Map<String,Object>>getDeptByUserName(@Param("username")String username);
 
 	boolean updateByState(@Param("userids")List<String>userids);
+
 }

+ 1 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml

@@ -192,6 +192,7 @@
 		</if>
 	</update>
 
+
 	<!-- 通过多个部门IDS,查询部门下的用户信息 -->
 	<select id="queryByDepIds" resultType="org.jeecg.modules.system.entity.SysUser">
 		select * from sys_user where del_flag = 0

+ 1 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysUserService.java

@@ -312,4 +312,5 @@ List<String>  departIds(String userid);
 	List<Map<String,Object>>getDeptByUserName(String username);
 
 	boolean updateByState(List<String>userids);
+
 }

+ 6 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/IWeixinUserService.java

@@ -45,6 +45,12 @@ public interface IWeixinUserService {
         //微信入职,转正,离职信息
         public Map<String, Object> WeixinQuit() throws IOException, ParseException;
 
+        //微信人事变动
+        public Map<String, Object> WeixinChange() throws IOException, ParseException;
+
+        //微信人事变动修改信息
+        public Map<String, Object> editUserChange() throws IOException, ParseException;
+
         //微信补卡信息
         public Map<String, Object> WeixinUpCard() throws IOException, ParseException;
         //企业微信获取用户信息

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

@@ -637,6 +637,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 	}
 
 
+
+
 	/**
 	 * 循环获取字典数据 树
 	 * 子ID必须小于父ID

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

@@ -21,6 +21,8 @@ import org.jeecg.modules.geke.makeUpCard.entity.MakeUpCard;
 import org.jeecg.modules.geke.makeUpCard.service.IMakeUpCardService;
 import org.jeecg.modules.geke.salary.entity.Salary;
 import org.jeecg.modules.geke.salary.service.ISalaryService;
+import org.jeecg.modules.geke.userchange.entity.UserChage;
+import org.jeecg.modules.geke.userchange.service.IUserChageService;
 import org.jeecg.modules.geke.userquit.entity.UserQuit;
 import org.jeecg.modules.geke.userquit.service.IUserQuitService;
 import org.jeecg.modules.geke.vacation.entity.Vacation;
@@ -101,6 +103,9 @@ public class WeixinUserImpl implements IWeixinUserService{
     @Autowired
     private IUserQuitService userQuitService;
 
+    @Autowired
+    private IUserChageService userChageService;
+
 
     private DepartmentService departmentService=new DepartmentService();
 
@@ -774,10 +779,10 @@ public class WeixinUserImpl implements IWeixinUserService{
         now.add(Calendar.DAY_OF_MONTH, -30);
         startDate = now.getTime().getTime()/1000;
         stDate = now.getTime();
-        List<String> list = WeixinVacationList(String.valueOf(startDate), String.valueOf(endDate),null);
+        List<String> list = WeixinVacationList(String.valueOf(startDate),String.valueOf(endDate),null);
         userQuitService.deleteQuit(sDate,eDate);
         for (String ls:list){//循环审批id
-            UserQuit quit = WeixinUserQuit(ls);
+           UserQuit quit = WeixinUserQuit(ls);
             if (quit!=null){
                 lst.add(quit);
             }
@@ -788,6 +793,78 @@ public class WeixinUserImpl implements IWeixinUserService{
         return null;
     }
 
+    /**
+     * 人事变动
+     * @return
+     * @throws IOException
+     * @throws ParseException
+     */
+    @Override
+    public Map<String, Object> WeixinChange() throws IOException, ParseException {
+        Map<String,Object>map=new HashMap<>();
+        UrlData.getVacationToken();
+        UrlData.getToken();
+        String msg="ok";
+        List<UserQuit>lst=new ArrayList<>();
+        Calendar now = Calendar.getInstance();//获取系统时间实列
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");//日期格式化
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        int actualMaximum = now.getActualMaximum(Calendar.DAY_OF_MONTH);//获取前端传过来的时间获取月份的总天数
+        String sDate = "";
+        String eDate = "";
+        Date stDate = null;
+        Date enDate = null;
+        long startDate;
+        long endDate;
+        endDate =now.getTime().getTime()/1000;
+        enDate = now.getTime();
+        now.add(Calendar.DAY_OF_MONTH, -30);
+        startDate = now.getTime().getTime()/1000;
+        stDate = now.getTime();
+        List<String> list = WeixinVacationList(String.valueOf(startDate),String.valueOf(endDate),null);
+        for (String ls:list){//循环审批id
+            UserChage userChage = WeixinUserChange(ls);
+            boolean f=false;
+            if (userChage!=null){
+                try {
+                    f= userChageService.save(userChage);
+                }catch (Exception e){
+                    e.printStackTrace();
+                }
+            }
+        }
+
+        return null;
+    }
+
+    @Override
+    public Map<String, Object> editUserChange() throws IOException, ParseException {
+        Calendar now = Calendar.getInstance();//获取系统时间实列
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date stDate =null;
+        Date enDate = now.getTime();
+        now.add(Calendar.DAY_OF_MONTH, -30);
+        now.add(Calendar.DAY_OF_MONTH, -30);
+        stDate=now.getTime();
+        List<UserChage> userChages = userChageService.listDate(sdf.format(stDate), sdf.format(enDate));
+        if (userChages!=null&&userChages.size()>0){
+            userChages.forEach(str->{
+                SysUser sysUser=new SysUser();
+                sysUser.setId(str.getUserId());
+                if (str.getEndPost()!=null&&!str.getEndPost().equals("")){
+                    String one = sysPositionMapper.getOne(str.getEndPost());
+                    if (one!=null){
+                        sysUser.setPost(one);
+                    }
+                }if (str.getEndWages()!=null&&!str.getEndWages().equals("")){
+                    sysUser.setWagesOne(str.getEndWages());
+                }
+                sysUserService.updateById(sysUser);
+            });
+        }
+        return null;
+    }
+
     /**
      * 补卡
      * @return
@@ -1102,6 +1179,114 @@ public class WeixinUserImpl implements IWeixinUserService{
     }
 
 
+    /**
+     * 获取微信审批实列-人事变动信息
+     * @param ls
+     * @return
+     * @throws IOException
+     */
+    public UserChage WeixinUserChange(String ls) throws IOException {
+        Map<String, Object> headers = Maps.newHashMap();//请求头集合
+        headers.put("Content-Type", "application/json; charset=utf-8");
+        ObjectMapper mapper = new ObjectMapper();//json转换实列
+        Map<String, Object> params = Maps.newHashMap();
+        UserChage userChage=null;
+        String errcode = "";
+        Map mapTypes = null;
+        try {
+            String createUrl = "https://qyapi.weixin.qq.com/cgi-bin/oa/getapprovaldetail?access_token=" + UrlData.VacationToken;//调用企业微信审批详情接口
+            params.put("sp_no", ls);//审批id参数
+            String res = MyHttpUtils.httpPostRequestWithJson(createUrl, headers, params);//发送请求
+            mapTypes = JSON.parseObject(res);//json格式转换为map集合
+            errcode = mapTypes.get("errcode").toString();//获取接口返回的状态码
+            if (errcode.equals("0")) {//判断接口是否请求成功
+                WeixinApproval weixinApproval = JSONArray.parseObject(mapTypes.get("info").toString(), WeixinApproval.class);//字符串转实体类
+                if (weixinApproval != null && weixinApproval.getSp_status().equals("2")) {//获取数据库字段所需的数据
+                    if (weixinApproval.getSp_name().equals("人事变动")) {
+                        userChage = new UserChage();
+                        userChage.setId(weixinApproval.getSp_no());
+                        String us = weixinApproval.getApplyer().toString();
+                        mapTypes = JSON.parseObject(us);
+                        userChage.setConmitId(mapTypes.get("userid").toString());
+                        //userChage.setDeptId(mapTypes.get("partyid").toString());
+                        userChage.setConmitDate(new Date(Long.valueOf(weixinApproval.getApply_time()) * 1000));
+                        List<Object> apply_data = weixinApproval.getApply_data();
+                        String o = apply_data.get(0).toString();
+                        mapTypes = JSON.parseObject(o);
+                        String contents = mapTypes.get("contents").toString();
+                        List<Map<String, Object>> tl = mapper.readValue(contents, new TypeReference<List<Map<String, Object>>>() {
+                        });
+                        Map value = null;
+                        Map types = null;
+                        for (Map str:tl){
+                            if (str.get("control").equals("Selector")){
+                                types = (Map) str.get("value");
+                                types=(Map) types.get("selector");
+                                List<Map<String, Object>> l = (List<Map<String, Object>>) types.get("options");
+                                l = (List<Map<String, Object>>)l.get(0).get("value");
+                                types=(Map) l.get(0);
+                                userChage.setType(types.get("text").toString());
+                            }else if (str.get("control").equals("Table")){
+                                types = (Map) str.get("value");
+                                List<Map<String, Object>> t =(List<Map<String, Object>>)types.get("children");
+                                t =(List<Map<String, Object>>)t.get(0).get("list");
+                                for (Map sr:t){
+                                    List<Map<String, Object>> tt=null;
+                                    if (sr.get("control").equals("Contact")){
+                                        types = (Map) sr.get("value");
+                                        List<Map<String, Object>> members = (List<Map<String, Object>>) types.get("members");
+                                        List<Map<String, Object>> departments = (List<Map<String, Object>>) types.get("departments");
+                                        if (types.get("members")!=null&&members.size()>0){
+                                            tt=(List<Map<String, Object>>)types.get("members");
+                                            userChage.setUserId(tt.get(0).get("userid").toString());
+                                            userChage.setRealname(tt.get(0).get("name").toString());
+                                        }else if (types.get("departments")!=null&&departments.size()>0){
+                                            tt= (List<Map<String, Object>>)types.get("departments");
+                                            userChage.setDeptId(tt.get(0).get("openapi_id").toString());
+                                            userChage.setDeptName(tt.get(0).get("name").toString());
+                                        }
+                                    }else if (sr.get("control").equals("Text")) {
+                                        List<Map<String,Object>>lis=(List<Map<String, Object>>)sr.get("title");
+                                        String f=null;
+                                        if (lis.get(0).get("text").equals("原职位")){
+                                            f="1";
+                                        }else if (lis.get(0).get("text").equals("新职位")){
+                                            f="2";
+                                        }else if (lis.get(0).get("text").equals("原薪资")){
+                                            f="3";
+                                        }else if (lis.get(0).get("text").equals("调整后薪资")){
+                                            f="4";
+                                        }
+                                        types=(Map) sr.get("value");
+                                        if (f!=null&&f.equals("1")){
+                                            userChage.setStartPost(types.get("text").toString());
+                                        }else  if (f!=null&&f.equals("2")){
+                                            userChage.setEndPost(types.get("text").toString());
+                                        }else  if (f!=null&&f.equals("3")){
+                                            userChage.setStartWages(types.get("text").toString());
+                                        }else  if (f!=null&&f.equals("4")){
+                                            userChage.setEndWages(types.get("text").toString());
+                                        }
+                                    }else if (sr.get("control").equals("Date")) {
+                                       types=(Map) sr.get("value");
+                                       types=(Map) types.get("date");
+                                       userChage.setTime(new Date(Long.valueOf(types.get("s_timestamp").toString()) * 1000));
+                                    }else if (sr.get("control").equals("Textarea")) {
+                                        types=(Map) sr.get("value");
+                                        userChage.setDemo(types.get("text").toString());
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return userChage;
+    }
+
 
     /**
      * 获取微信审批实列-入职,转正,离职信息