ysh před 3 roky
rodič
revize
19258d0eba

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

@@ -618,28 +618,28 @@ public class LoginController {
 	 * @return
 	 * @throws Exception
 	 */
-	@RequestMapping(value = "/kjLogin", method = RequestMethod.POST)
-	public Result<JSONObject> kjLogin(@RequestBody WeixinXCX weixinXCX) throws Exception {
-		Result<JSONObject> result = new Result<JSONObject>();
-		JSONObject obj = new JSONObject();
-		String tokenUrl = "https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code";
-		tokenUrl = tokenUrl.replace("APPID","wx4a24204875735130").replace("SECRET","09316748df749be5f0232c0b280a0f8f").replace("JSCODE", weixinXCX.getCode());
-		ObjectMapper mapper = new ObjectMapper();
-		WeixinXCX weixinXCX1 = mapper.readValue(restTemplateUtil.doGet(tokenUrl).getBody(), new TypeReference<WeixinXCX>() {
-		});
-		String phoneNumber = null;
-
-		cn.hutool.json.JSONObject userencryptedData = AES.wxDecrypt(weixinXCX.getEncryptedData(),weixinXCX1.getSession_key(),weixinXCX.getIv());
-		if (StringUtils.isNotBlank((String) userencryptedData.get("phoneNumber"))){
-			phoneNumber = (String) userencryptedData.get("phoneNumber");
-		}
-		SysUser sysUser = sysUserService.getUserByPhone(phoneNumber);
-		result = sysUserService.checkUserIsEffective(sysUser);
-		if(!result.isSuccess()) {
-			return result;
-		}
-		userInfo(sysUser, result);
-		return result;
-	}
+//	@RequestMapping(value = "/kjLogin", method = RequestMethod.POST)
+//	public Result<JSONObject> kjLogin(@RequestBody WeixinXCX weixinXCX) throws Exception {
+//		Result<JSONObject> result = new Result<JSONObject>();
+//		JSONObject obj = new JSONObject();
+//		String tokenUrl = "https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code";
+//		tokenUrl = tokenUrl.replace("APPID","wx4a24204875735130").replace("SECRET","09316748df749be5f0232c0b280a0f8f").replace("JSCODE", weixinXCX.getCode());
+//		ObjectMapper mapper = new ObjectMapper();
+//		WeixinXCX weixinXCX1 = mapper.readValue(restTemplateUtil.doGet(tokenUrl).getBody(), new TypeReference<WeixinXCX>() {
+//		});
+//		String phoneNumber = null;
+//
+//		cn.hutool.json.JSONObject userencryptedData = AES.wxDecrypt(weixinXCX.getEncryptedData(),weixinXCX1.getSession_key(),weixinXCX.getIv());
+//		if (StringUtils.isNotBlank((String) userencryptedData.get("phoneNumber"))){
+//			phoneNumber = (String) userencryptedData.get("phoneNumber");
+//		}
+//		SysUser sysUser = sysUserService.getUserByPhone(phoneNumber);
+//		result = sysUserService.checkUserIsEffective(sysUser);
+//		if(!result.isSuccess()) {
+//			return result;
+//		}
+//		userInfo(sysUser, result);
+//		return result;
+//	}
 
 }

+ 19 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysDepartController.java

@@ -113,6 +113,25 @@ public class SysDepartController {
 		return result;
 	}
 
+	/**
+	 * 仅用于考勤数据查询
+	 * 查询数据 查出所有部门,以及部门下人员,并以树结构数据格式响应给前端
+	 *
+	 * @return
+	 */
+	@RequestMapping(value = "/queryTreeList2", method = RequestMethod.GET)
+	public Result<List<SysDepartTreeModel>> queryTreeList2() {
+		Result<List<SysDepartTreeModel>> result = new Result<>();
+		try {
+			List<SysDepartTreeModel> list = sysDepartService.queryTreeList2();
+			result.setResult(list);
+			result.setSuccess(true);
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+		}
+		return result;
+	}
+
 	/**
 	 * 添加新数据 添加用户新建的部门对象数据,并保存到数据库
 	 * 

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

@@ -30,6 +30,12 @@ public interface ISysDepartService extends IService<SysDepart>{
      */
     List<SysDepartTreeModel> queryTreeList();
 
+     /**
+     * 勤信息使用(部门下增加人员)
+     * @return
+     */
+    List<SysDepartTreeModel> queryTreeList2();
+
     /**
      * 查询所有部门DepartId信息,并分节点进行显示
      * @return

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

@@ -52,6 +52,8 @@ public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart
 
 	@Autowired
 	private  SysDepartMapper sysDepartMapper;
+	@Autowired
+	private  SysUserServiceImpl sysUserServiceImpl;
 
 	@Override
 	public List<SysDepartTreeModel> queryMyDeptTreeList(String departIds) {
@@ -92,6 +94,40 @@ public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart
 		return listResult;
 	}
 
+	/**
+	 * 考勤信息使用(部门下增加人员)
+	 * @return
+	 */
+	@Override
+	public List<SysDepartTreeModel> queryTreeList2() {
+		LambdaQueryWrapper<SysDepart> query = new LambdaQueryWrapper<SysDepart>();
+		query.eq(SysDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+		query.orderByAsc(SysDepart::getDepartOrder);
+		List<SysDepart> list = this.list(query);
+
+		LambdaQueryWrapper<SysUser> query1 = new LambdaQueryWrapper<SysUser>();
+		query1.eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+		List<SysUser> list1 = sysUserServiceImpl.list(query1);
+		List<SysDepart> list3 = new ArrayList<SysDepart>();
+		for(SysUser o:list1){
+			if(o.getDepartIds() != null){
+				String[] dep = o.getDepartIds().split(",");
+				for(String a:dep){
+					SysDepart sysDepart = new SysDepart();
+					sysDepart.setId(o.getId());
+					sysDepart.setParentId(a);
+					sysDepart.setDepartName(o.getRealname());
+					list3.add(sysDepart);
+				}
+			}
+		}
+		list.addAll(list3);
+		// 调用wrapTreeDataToTreeList方法生成树状数据
+		List<SysDepartTreeModel> listResult = FindsDepartsChildrenUtil.wrapTreeDataToTreeList(list);
+		return listResult;
+	}
+
+
 	@Cacheable(value = CacheConstant.SYS_DEPART_IDS_CACHE)
 	@Override
 	public List<DepartIdModel> queryDepartIdTreeList() {

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

@@ -11,12 +11,16 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.util.DateUtils;
 import org.jeecg.modules.geke.attendance.entity.Attendance;
 import org.jeecg.modules.geke.attendance.service.IAttendanceService;
+import org.jeecg.modules.geke.shift.entity.Shift;
+import org.jeecg.modules.geke.shift.service.IShiftService;
+import org.jeecg.modules.system.entity.SysDepart;
 import org.jeecg.modules.system.entity.SysUser;
 import org.jeecg.modules.system.util.DateUtils2;
 import org.jeecg.modules.viewClockIn.entity.ViewClockIn;
@@ -46,12 +50,19 @@ import io.swagger.annotations.ApiOperation;
 @RestController
 @RequestMapping("/viewClockIn/viewClockIn")
 public class viewClockInController extends JeecgController<ViewClockIn, IviewClockInService> {
-	@Autowired
-	private IviewClockInService viewClockInService;
+	 @Autowired
+	 private IviewClockInService viewClockInService;
 	 @Autowired
 	 private IbdClockinMonthService bdClockinMonthService;
 	 @Autowired
 	 private IAttendanceService attendanceService;
+	 @Autowired
+	 private IShiftService shiftService;
+
+//	 public List<Map> getMap(){
+//		 LambdaQueryWrapper<Shift> query = new LambdaQueryWrapper<Shift>();
+//		 shiftService.getMap(query);
+//	 }
 
 	 @RequestMapping(value = "/jiaozhun", method = RequestMethod.PUT)
 	 public String jiaozhun(@RequestBody JSONObject jsonObject) throws ParseException {
@@ -123,10 +134,32 @@ public class viewClockInController extends JeecgController<ViewClockIn, IviewClo
 	public Result<?> queryPageList(ViewClockIn viewClockIn,
 								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   @RequestParam(name="beginViewDate", defaultValue="1") String beginViewDate,
+								   @RequestParam(name="endViewDate", defaultValue="1") String endViewDate,
 								   HttpServletRequest req) {
-		QueryWrapper<ViewClockIn> queryWrapper = QueryGenerator.initQueryWrapper(viewClockIn, req.getParameterMap());
+
+		LambdaQueryWrapper<ViewClockIn> query = new LambdaQueryWrapper<ViewClockIn>();
+		if(viewClockIn.getRealname() != null && viewClockIn.getRealname() != ""){
+			query.like(ViewClockIn::getRealname,viewClockIn.getRealname());//姓名
+		}
+		if(viewClockIn.getDepartNames() != null && viewClockIn.getDepartNames() != ""){
+			query.like(ViewClockIn::getDepartNames,viewClockIn.getDepartNames());//部门
+		}
+		if(viewClockIn.getWorkNo() != null && viewClockIn.getWorkNo() != ""){
+			query.eq(ViewClockIn::getWorkNo,viewClockIn.getWorkNo());//工号
+		}
+		if(viewClockIn.getName() != null && viewClockIn.getName() != ""){
+			query.eq(ViewClockIn::getName,viewClockIn.getName());//班次
+		}
+		if(viewClockIn.getViewDate() != null && viewClockIn.getViewDate() != ""){
+			query.eq(ViewClockIn::getViewDate,viewClockIn.getViewDate());//日期
+		}
+		if(beginViewDate != null && beginViewDate != "" && !beginViewDate.equals("1")){
+			query.between(ViewClockIn::getViewDate,beginViewDate,endViewDate);
+		}
+		query.orderByDesc(ViewClockIn::getViewDate);
 		Page<ViewClockIn> page = new Page<ViewClockIn>(pageNo, pageSize);
-		IPage<ViewClockIn> pageList = viewClockInService.page(page, queryWrapper);
+		IPage<ViewClockIn> pageList = viewClockInService.page(page, query);
 		return Result.OK(pageList);
 	}
 	

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

@@ -27,27 +27,39 @@ import org.jeecgframework.poi.excel.annotation.Excel;
 @Accessors(chain = true)
 @ApiModel(value="view_clock_in_1对象", description="员工考勤日报")
 public class ViewClockIn {
-    
+
 	/**真实姓名*/
 	@Excel(name = "真实姓名", width = 15)
     @ApiModelProperty(value = "真实姓名")
 	private String realname;
+	/**真实姓名*/
+	@Excel(name = "工号", width = 15)
+    @ApiModelProperty(value = "工号")
+	private String workNo;
 	/**登录账号*/
 	@Excel(name = "登录账号", width = 15)
     @ApiModelProperty(value = "登录账号")
 	private String username;
 	/**名称*/
-	@Excel(name = "名称", width = 15)
-    @ApiModelProperty(value = "名称")
+	@Excel(name = "班次名称", width = 15)
+    @ApiModelProperty(value = "班次名称")
 	private String name;
 	/**shiftTimeS*/
 	@Excel(name = "上班时间", width = 15)
     @ApiModelProperty(value = "shiftTimeS")
 	private String shiftTimeS;
+	/**
+	 * 班次中的上班时间
+	 */
+	private String shiftRealTimeS;
 	/**shiftTimeX*/
 	@Excel(name = "下班时间", width = 15)
     @ApiModelProperty(value = "shiftTimeX")
 	private String shiftTimeX;
+	/**
+	 * 班次中的下班时间
+	 */
+	private String shiftRealTimeX;
 	/**latetimeS*/
 	@Excel(name = "迟到分钟数", width = 15)
     @ApiModelProperty(value = "latetimeS")
@@ -57,13 +69,13 @@ public class ViewClockIn {
     @ApiModelProperty(value = "latetimeX")
 	private Integer latetimeX;
 	/**用户id*/
-	@Excel(name = "用户id", width = 15)
     @ApiModelProperty(value = "用户id")
 	private String userId;
 	/**viewDate*/
-	@Excel(name = "viewDate", width = 15)
+	@Excel(name = "日期", width = 15)
     @ApiModelProperty(value = "viewDate")
 	private String viewDate;
+
 	/**gotoTime*/
 	@Excel(name = "上班打卡时间", width = 15)
     @ApiModelProperty(value = "gotoTime")
@@ -108,4 +120,18 @@ public class ViewClockIn {
 	@Excel(name = "假期类型", width = 15)
     @ApiModelProperty(value = "假期类型")
 	private String holidayType;
+
+	/**
+	 * 排班规则表 上班类型 1.固定时间上下班,2.按班次上下班,3.自由上下班
+	 */
+	private String ruleType;
+	/**
+	 * 人员部门名称(多部门以逗号分割)
+	 */
+	private String departNames;
+	/**
+	 * 人员部门id(多部门以逗号分割)
+	 */
+	private String departIds;
+
 }